- 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. 
- compose numeric_limits<> specializations appropriate for each target
  platform.  (Current are *not* correct for any of our target platforms!)
- fix vector and string to define non-pointer iterator types.  Pointers
  as container iterators are evil.
