If you use `entity.addPolicy(PolicySpec.create(AutoScalerPolicy.class))` then the AutoScalerPolicy's no-arg constructor gets called; and `policy.init()` gets called as part of the policy lifecycle (see `InternalPolicyFactory`). 

However, if you call `entity.addPolicy(new AutoScalerPolicy())` then (previously) `init()` would not getting called. I changed that to call `init()` in the `AbstractPolicy` constructor iff `isLegacyConstruction()` - i.e. it was not constructed via the PolicySpec. 

That is arguably a bad idea (!) because calling a sub-class's method from the super-class constructor is a recipe for disaster with fields not being initialised. However, not calling `init()` at all is arguably worse.

Also, in the case of `GroupPickUpEntitiesTest`, it is (currently?) wrong to call `subscribe()` in the init method. It gives the exception shown below. It got away with this previously because it wasn't using PolicySpec and it was calling `init()` directly in the `setEntity` method. Hence just deleting the `init()` method.

Note that we get the exception because the policy uses the associated entity's context for the subscription.

    Caused by: java.lang.IllegalStateException: FindUpServicesWithNameBob{name=null, running=true} cannot subscribe because it is not associated to an entity
	at brooklyn.policy.basic.AbstractEntityAdjunct.checkCanSubscribe(AbstractEntityAdjunct.java:293)
	at brooklyn.policy.basic.AbstractEntityAdjunct.subscribe(AbstractEntityAdjunct.java:261)
	at brooklyn.entity.group.GroupPickUpEntitiesTest$FindUpServices.init(GroupPickUpEntitiesTest.java:100)
	at brooklyn.entity.proxying.InternalPolicyFactory.createPolicy(InternalPolicyFactory.java:139)
	at brooklyn.management.internal.LocalEntityManager.createPolicy(LocalEntityManager.java:122)
	at brooklyn.entity.basic.AbstractEntity.addPolicy(AbstractEntity.java:1059)