v2, v3, integration branch

svn path=/branches/filesystem3/index.htm; revision=62649
merge trunk

svn path=; revision=62809
Move header, provide all template parameters, clean up code

svn path=; revision=63042
Accept a number of Eric Niebler's suggestions, including renaming.

svn path=; revision=63074
Clean up code, add initial documentation draft

svn path=; revision=63082
Cope with I/O errors or premature eof

svn path=; revision=63099
Move header to detail in preparation for merge to trunk

svn path=; revision=63100