Initial refactor to break data.py into separate files
Added legacy support for tile conversion.

Also fixed bug which made the tiled raster versions smaller then
the raster being converted.
Extended the Layer getRaster API to include loading with an extent.

This does not give back a raster with that specific extent, but
gives a raster with a RasterExtent that has an extent which
is the smallest extent that covers the passed in extent, that
snaps to the resolution of the layer's RasterExtent.

In the case of tiles, it uses a CroppedRaster to load to that
extent, as opposed to calling getRaster with a RasterExtent,
which loads a Raster with an ArrayRasterData.
Fixing some links in Build.scala
Enabled caching tiled rasters in catalog.

Also added a optional 'cache' flag to the ARG metadata json. This
will cache the specific layer, even if the DataStore does not have
it's 'cacheAll' flag set.
Merge pull request #489 from lossyrob/topic/importer

Refactor of data.py into python package
Merge remote-tracking branch 'upstream/master' into tile/caching
Made test tile rasters smaller.
Fixed failing test.
Taking conscript out of travis build.

The travis build keeps choking on trying to get conscript, so we've decided to just remove that section of the CI. This means the giter8 template will no longer be tested automatically.
Merge pull request #491 from lossyrob/tile/caching

Enabled caching tiled rasters in catalog.
Merge pull request #490 from lossyrob/loading/byextent

Extended the Layer getRaster API to include loading with an extent.
Resolve feature serialization issues.

All feature classes must be serializable, and their data classes as well.  Our use of
scala.Unit for features without a data component was causing problems as scala.Unit isn't
serializable.
Merge pull request #493 from joshmarcus/topic/feature_serialization

Resolve feature serialization issues.