Add EnsembleName to support multiple deployments of the same service.

The ensemble name is prefixed to the service name in ZooKeeper to distinguish multiple deployments of the same service.

Renamed ServiceEndPoint "serviceName" to "serviceType" to better reflect how it's used.

Typically:
*  The service developer will pick the service type.
*  The ops administrator will pick the ensemble name.

The ensemble name and service type are concatenated to produce a name that must be unique within ZooKeeper.

Take a look at the CalculatorUser and CalculatorService to see how EnsembleName should be used.

For backward compatibility, ensemble name is optional.  If it's missing then the Ostrich behavior is backward-compatible with old code.  To migrate old code, just rename references to getServiceName to getServiceType.

Service developers can fake this same functionality by overloading the service name to have both the ensemble name and the service type.  But this approach leads to a cleaner separation of concerns where the Java developer picks one name and the Ops administrator picks the other.