Hadoop Catalog and Params Refactor

Couple of things going on here:
- HadoopCatalog params are now sub-directories in the catalog root
-- Using blank params will save layer to root folder
-- Using non-blank params will save layer that sub-folder
- Factored out ParamsBuilder into DefaultParams[Params] class that is shared between catalogs
- Catalog now leans on heavier on DefaultParams on both save and load, this provides some loading logic that is especially useful with HadoopCatalog
- Added HadoopCatalogSpec that uncovered some bugs
-- bug: loading with FilterSet was not working because of serialization issue
-- bug: type-o on KeyFilter would prevent it from registering any partitions as relevant in PreFilteredRDD
- MetaDataCatalog went through some refactor that kicked LayerMetadata, it now just stores RasterMetaData, LayerId is encoded in the catalog structure, so it does not need to be encoded twice.
- clobber is available as option on ingest command lines

DefaultParams is delegated by Catalog subclasses through paramsFor method. It could be backed into Catalog, but this way it allows the concrete implementations to add some implementation specific logic. ex: AccumuloCatalog does not have the notion of default table, but HadoopCatalog has default folder.