BROOKLYN-49: Catalogue persistence

* CatalogItem extends BrooklynObject. Deprecates CatalogItem.getName
in favour of getDisplayName.

* Adds reset(Collection<CatalogItem>) to BrooklynCatalog interface.

* Adds BrooklynServerConfig.CATALOG_LOAD_MODE config key. If its value is
LOAD_BROOKLYN_CATALOG_URL then AbstractManagementContext will load the
catalogue (as previously normal) when its getCatalog method is called.
Otherwise the management context lets RebindManagerImpl load the catalog
once persistence files have been loaded. If ther persistence store was
empty (i.e. the server is starting for the first time) then the catalog
configured in BROOKLYN_CATALOG_URL is loaded.

* Catalogue item IDs are autogenerated by AbstractBrooklynObject. The
only exception to this is for YAML blueprints that are posted to the
server. To maintain backwards compatability, where id and
registeredTypeName were equivalent, BrooklynCatalog.getCatalogItem is
modified to also check items' registeredTypeName.

* Catalogue persistence must be enabled on the command line with the
--persistCatalog flag.