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.
Text and indentation fixes