Server pool entity

A basic implementation of an entity whose locations can be reused by other applications. Inspiration taken from @grkvlt's work on brooklyn-docker and brooklyn-cloud.

Comments:
* We should swap the use of the EmptySoftwareProcess for an entity that checks the location is still alive and publishes metrics.
* We could extend the pool to include externally-created machines.
* We could/should provide a basic policy to ensure the pool maintains spare capacity.

Can be configured on the `ServerPool`, with the config being inherited. Can you say how to configure it (i.e. configuring `CloudLocationConfig.INBOUND_PORTS`)