hack for less contention in mapfile reading

- GeocodeRecordMapFileInput is a source of contention because reading
  from a MapFile holds a lock. As a short-term solution, read that in 4
  times and put the 4 instances in a queue so we get some more
  throughput. HACK.
- Timer around time of mapfile read, so we can verify that spikes of
  overall time are correlated to spikes of that time. (If they are, it
  doesn't necessarily mean this is the cause, but it's a signal.) Also
  log the keys and value sizes, just in case there's some sort of
  pattern.
- Also time the time to get a mapfile so we can measure contention that
  way.
- Separate most of MMapInputStream into an Impl class that can safely be
  shared by multiple MMapInputStream's. That way, we can only do one set
  of mmap's per file. Java was OOM'ing without this. (Which is
  surprising since I'm running on 64-bit, actually.)