We want to review+merge https://github.com/brooklyncentral/brooklyn/pull/1180 first, and then rebase this, Which will remove quite a few of the changes.

A few worrying things here (but not entirely sure what's best):
* is there a clean divide between construct + init, so that we don't do a bunch of extra things in between.
* we've removed the `if (isNewStyleEntity(clazz))` check - not sure what the implications are there.
* having to guard `setProxy` feels wrong. If something needs it set earlier, then can we always set it earlier.

I'll mull those things over!