split Read.scala (and tests) into separate files

It was a bit unwieldy, and I may add more classes to this general category, so it seems cleaner to break them out some.