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.