Add asynchronous data caching

Previously, while updating data cache, a server would be blocked for a few millisecond,
unable to process anything other than the update of the geoip in-memory cache.
Preload and preload6 have been modified to enable the geoip module to update its cache
without blocking any background work on a server.
The server will keep using the old cache until the new one is ready.
Also split cache into cache4 and cache6 for speeding up the async process.