Cache I/O when doing several IP searches in the same instance

I store the `mmdb` database in a remote filesystem, which has slow random I/O. When profiling with `xhprof` I found that the hotspot for my use case was the native `fread()` and `fseek()` calls (90%+ of the time), so I made a little hack to optimize it a bit and avoid a few duplicated reads when doing several seeks in the same run (i.e. instantiate once, seek multiple times).

For that use case (500 random IP queries) I measured the following maximum queries per second after several runs:
 - base: 10 QPS (~500 KB used)
 - ftell: 25 QPS (~500 KB used)
 - inner cache: 40 QPS (~2600 KB used)
 - inner cache + ftell: 85 QPS (~2600 KB used)
(Measured with PHP 5.3.3-7+squeeze17 with Suhosin in Debian 6)

The higher memory usage might be a problem for some setups, so I understand that it wouldn't be suitable for the project goals, but in my case it was a nice trade and it may be useful to someone else.