Adds BrooklynType super-class

- use PolicyDynamicType and EnricherDynamicType, deleting previous
  classes.
- adds BrooklynTypes, deprecating old EntityTypes
Add persisted getTags to BrooklynObject

- no longer just Entity
- deprecate tag methods on Entity (getTags/addTags/etc), and now have
  getTagSupport() so that the Entity interface doesn’t get as cluttered.
- adds requestPersist() to AbstractBrooklynObject
Push managementContext up to AbstractBrooklynObject
ChangeListener: use BrooklynObject

- instead of having separate methods for Entity, Location, etc,
  just have one for BrooklynObject.
- move requestPersist() impl up to AbstractBrooklynObject
Tidy Internal*Factory

- deprecates isNewStyleEnricher etc, in preference for general
  InternalFactory.isNewStyle
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
This closes #110

Merge remote-tracking branch 'apache-gh/pr/110'

Conflicts:
	api/src/main/java/brooklyn/basic/BrooklynObject.java
	core/src/main/java/brooklyn/basic/AbstractBrooklynObject.java
	core/src/main/java/brooklyn/enricher/basic/AbstractEnricher.java
	core/src/main/java/brooklyn/entity/basic/AbstractEntity.java
	core/src/main/java/brooklyn/entity/proxying/InternalPolicyFactory.java
	core/src/main/java/brooklyn/entity/rebind/BasicLocationRebindSupport.java
	core/src/main/java/brooklyn/location/basic/AbstractLocation.java
	core/src/test/java/brooklyn/entity/basic/EntitiesTest.java

Conflicts mainly new tags methods from #109, resolved and confirmed tests pass.
Also added LocationType and related classes.