Remove AbstractEntity.toStringFieldsToInclude

- only support overriding toStringHelper()
- Moved reflective toString support to groovy LanguageUtils
Deprecate unused AbstractEntity.tempWorkings
AbstractEntity: minor cleanup (@Override etc)
Use generics in Entity.addChild()

- changes to `T Entity.addChild(T)`, now that we've converted to
  Java instead of Groovy
Delete AbstractEntity.getChildrenReference()
Remove AbstractEntity.invokeFromJava

- was previously required when AbstractEntity was groovy (due to 
  generics causing problems).
Remove AbstractEntity.createManagementSupport

- just create it up-front rather than lazily
AbstractEntity.*Locations() method synchronisation

- given addLocations() uses synchronisation, then the other
  methods should as well otherwise it's pointless
Renamed AbstractEntity.assertNotYetOwned to assertNotYetManaged

- deprecate old assertNotYetOwned
Merge pull request #777 from aledsage/cleanup/AbstractEntity

Cleanup: AbstractEntity