Manav templated read

I added some more default template parameters to avoid most of the API breakage; the remaining breakage affects only a method that should only be used internally IMHO.

This probably still needs a little more testing.