Cache persistence and expiration timestamp for cached tiles

Here's the squashed commit. All files contain logical changes; however, I've been unable to undo pure formatting changes (as soon as I try to restore the old formatting and save, Eclipse reformats everyting).

FileSystemTileCache can be created as a persistent cache, which will retain its contents across instances.
Lifetime of a tile in cache can now be limited; stale tiles will still be served from cache but a refresh will be attempted
Cache purge (delete contents) and destroy (prepare to exit) are now separate operations

Signed-off-by: mvglasow <michael -at- vonglasow.com>