- templatize iostream
  - finish streambuf
  - finish ostream
  - templatize istream
  - templatize filebuf
  - templatize ifstream
  - templatize ofstream
  - templatize fstream
  - templatize stringbuf
  - templatize stringstream
- move inappropriate inlines out of line
  - in streambuf
  - in istream
  - in ostream
  - in containers
  - in algorithms
- add deprecated features from Annex D
  - add #ifdef wrappers for all of them, including in each
    C <xxx.h> header
  - replace typedef'd non-deprecated types with more type-safe equivalents.
- add optimization hooks (esp. whitespace eating) to streambuf
  - add _M_begin() and _M_end() to streambuf
  - add algorithm specializations for [io]streambuf_iterator (copy find etc.)
- integrate locale num_put FP and num_get into iostream operators <<, >>
- fix template members of basic_string<> to overload iterators and
  non-iterators properly.  (This is the infamous hack as in vector<> etc
  23.1.1 para 10.)
- write filebuf for wide characters
- replace stl/bits/stl_config 
- add feature-test macros for non-standard extensions
- move major extensions into separate namespace (e.g. stl::)
- create MT abstraction layer
- add MT support for locale, string, istream, ostream
- specialize functions that use_facet<> calls on failure for the required 
  facets, and construct them lazily so unused facets need not be constructed 
  when the locale is. 
- complete numeric_limits<> specializations appropriate for each
  floating point type.
- fix vector and string to define non-pointer iterator types.  Pointers
  as container iterators are evil.
- <valarray>
  - improve slice_array performance
  - implement a reference-counted gslice
- <complex>
  - provide member definitions of the primary template
- <cmath>: provide missing names.
