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.

Better message, such as `checkNotNull(entity, "entity")`