Persist and rebind feeds

- Adds Feed interface
- Adds abstractEntity.addFeed; if added like that then feed is persisted
- Adds EntityInternal.getFeedSupport(), which has getFeeds(), addFeed(),
  removeFeed() and getAllFeeds()
- AbstractFeed.poller: make private, with getter;
  and make transient
FunctionFeed: test persistence

- and make easier to build a FunctionPollConfig
Test rebinding SshFeed
Persist JmxFeed: testing and transient fields
Experimenting with Feed as EntityAdjunct
Tidy ChefAttributeFeed
Convert Feed to extend EntityAdjunct
Adds IllegalStateExceptionSupplier.EMPTY_EXCEPTION

- don’t create a new instance every time a Maybe.absent is constructed
Adds persister.loadMementoRawData

- Refactors BrooklynMementoPersisterToObjectStore to remove duplication
- Adds BrooklynMementoRawData, which has the contents of the raw
  blobs/files for persistence (rather than deserialised mementos)
- Adds BrooklynMementoPersisterToObjectStore.loadMementoRawData
- Adds BrooklynMementoPersisterToObjectStore.checkpoint(BrooklynMementoRawData)
copy-state CLI: use BrooklynMementoRawData
CLI copy-state supports uploading to any location

- previously could only copy to the filesystem, rather than to
  any object store
Transformations of persisted state
CLI copy-state: support transformations
Transformations of BrooklynMemento (persisted state)
This closes 177.

Merge remote-tracking branch 'apache-gh/pr/177' into pr-177-2

Conflicts - quite a few places, where CatalogItem was added in master but not done here.  Have fixed that and other things noted in the pull request.

	core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
	core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
Merge remote-tracking branch 'apache-gh/pr/108' into pr/108

Conflicts - to be resolved in subsequent commit
	api/src/main/java/brooklyn/entity/rebind/BrooklynObjectType.java
	api/src/main/java/brooklyn/entity/rebind/RebindContext.java
	api/src/main/java/brooklyn/mementos/BrooklynMemento.java
	api/src/main/java/brooklyn/mementos/BrooklynMementoManifest.java
	api/src/main/java/brooklyn/mementos/BrooklynMementoPersister.java
	core/src/main/java/brooklyn/entity/rebind/PeriodicDeltaChangeListener.java
	core/src/main/java/brooklyn/entity/rebind/PersisterDeltaImpl.java
	core/src/main/java/brooklyn/entity/rebind/RebindContextImpl.java
	core/src/main/java/brooklyn/entity/rebind/RebindManagerImpl.java
	core/src/main/java/brooklyn/entity/rebind/dto/BrooklynMementoImpl.java
	core/src/main/java/brooklyn/entity/rebind/dto/BrooklynMementoManifestImpl.java
	core/src/main/java/brooklyn/entity/rebind/dto/MementosGenerators.java
	core/src/main/java/brooklyn/entity/rebind/dto/MutableBrooklynMemento.java
	core/src/main/java/brooklyn/entity/rebind/persister/BrooklynMementoPersisterToObjectStore.java
	core/src/main/java/brooklyn/internal/BrooklynFeatureEnablement.java
This closes 108.

tidy up of 108, fixing merge conflicts and adding more places where Feed and CatalogItem need checks for persistence,
e.g. LookupContext and XmlMementoSerializer, and the (added in master branch) BrooklynMementoRawData
be soft not weak, when we have a Reference to an object which should be GC'd only when memory gets full
This closes #188

* github/pr/188:
  be soft not weak, when we have a Reference to an object which should be GC'd only when memory gets full