Replace streams with read-on-demand.

The problem with streaming the DBF and SHP files independently is that each
greedily consumes as much memory as possible, and then we have to do a bunch of
work to piece the records from both streams back together again. It’s much
simpler to just have a read-on-demand API where we can read the next record from
each file on demand, and thus keep only a single record in memory at a time.
Fix tests.
Add readAllRecords convenience routine.
Rename for clarity.
Update README.
Add reader.close to the README.
Add end to the README.
Better convenience method.
added read functions for PointM, PointZ, MultiPointM and MultiPointZ