Convert AbstractEntity to java

The unit tests and integration tests [1] work for me, and I've tried a subset of the live tests which were all fine.
    http://brooklyn.builds.cloudsoftcorp.com/job/Brooklyn-Branch-Integration/10/

In making this change, I updated a lot of tests to use the new EntitySpec approach, rather than calling the entity constructor. Hence the huge amount of code change!