Adds AbstractBrooklynObjectRebindSupport

- removes duplication from Basic*RebindSupport, for them all
  extending AbstractBrooklynObjectRebindSupport
- adds MementosGenerator.newMemento(BrooklynObject)
- moves init+rebind method declarations into AbstractBrooklynObject
Move construction mess into AbstractBrooklynObject

- delete duplication from AbstractEntity, AbstractLocation, etc
Move isRebinding up to AbstractBrooklynObject