Created CacheService

Adds a CacheService interface, which provides API for storing and retrieving
data on disk.

Includes a CacheService implementation that uses MapDB
(https://github.com/jankotek/MapDB) to manage the disk I/O operations involved
in caching.

Additionally, the SCIFIOCell line of classes has been refactored to use the
CacheService. Thus, whenever a SCIFIOCellImg is created (e.g. by using the
SCIFIOCellImgFactory) caching of the cells will occur automatically. Direct use
of the CacheService API is typically not needed, except to change configuration
options.

By default, only dirty cells will be written to disk and there is no limit to
amount of disk space that will be used.

Note that the underlying database itself in the MapDB cache can not be
configured. If changes need to be made, the service itself should be subclassed
and the initialize() method overridden with different database construction.
Merge branch 'cache-tests'

Created CacheService with a MapDB implementation. Refactored SCIFIOCell classes
to use the CacheService by default (SCIFIOCellCache still provides a memory
cache, CacheService is used as a disk store).

Direct use of the CacheService is typically not needed except for configuration
options.  See the CacheService documentation for configuration details.