Adds BrooklynStorage support
Wire up storage in AbstractEntity/attribs/config
Add Entity.getCreationTime for DynamicCluster.defaultRemovalStrategy

- Entity.getChildren() no longer guarantees order of returned collection
  because can be backed by a datagrid
- Adds Entity.getCreationTime
- default removal strategy for DynamicCluster (which removes newest)
  finds entity with most recent getCreationTime()
Add SetConfigKey and deprecate ListConfigKey

- config map no longer ordered, so ListConfigKey is no longer ordered;
  So deprecates ListConfigKey
- Adds SetConfigKey
- Change UsesJava.JAVA_OPTS to be a SetConfigKey instead.
Adds BrooklynStorage.createAtomicLong

- Ended up this not being used; should it be included?
  Feels useful;
  But depends if data grids support it easily...
Switch PseudoDatagrid to use unordered map

- because that's more like what data grids will give us
Store AbstractEntity.locations in brooklyn-storage

- Adds BrooklynStorage.createNonConcurrentList()
- Adds MutableList.Builder.buildImmutable()
- Adds BasicReference(T val) constructor
storage: Incorporate review comments
Adds storage.remove(id); call on entity deletion
Change datagrid/storage to return ConcurrentMap
Renamed PseudoDatagrid to InmemoryDatagrid
AbstractEntity.displayName: in storage
AbstractGroup.members: in storage
storing in datagrid: Incorporate review comments
DynamicFabricTest: add tearDown
Merge pull request #779 from aledsage/feature/storage

Feature: storage (prep for using datagrid)