Refactoring of load balancer execution API and add ExecutionListener

* Refactored the load balancer execution API as part of #161
* Addressed issue #146
* Added meta info to Server to capture additional service and instance information in deployment environment

Should be an ImmutableList so calls to CommandBuilder can't affect instances that have already been created with calls to build()