XD-2093,XD-2092,XD-2097 - Expose container/modules info from XD cluster

- XD-2093 Add deployment status to module metadata
  - ModuleMetadata will now have:
     - Unit (Stream/Job) name
     - Module name (module label + index)
     - Module type
     - Unit deployment status
- Update `ModuleMetadataResource` with the changes
- Add a method in `ModuleMetadataController` to update the
  deployment status for each stream/job module by referring
  to stream/job repositories
- Fix `runtime modules` command and add the above fields in the result
- Change `runtime modules` to `cluster modules`
- Fix the tests
- Add `deploymentStatus` to ModuleMetadata
  - Previously it was updated with `ModuleMetadataResource`
- XD-2092 Enhance container domain object
- Add `RuntimeContainer` that extends `Container` and also has:
  - DeploymentSize
  - DeployedModules
- Change `/runtime/containers` to `cluster/containers` and change the
- REST endpoint to return the `DetailedContainer` objects
  - Update resource assembler and domain object to use `DetailedContainer`
- Update tests

- XD-2097 Shutdown containers from admin
  - Enable `shutdown` endpoint for containers
    - Keep the `mangementContextPath` the same for both admin/container
  - ContainerRegistrar stores the container's port as container attribute
    - If the container uses local port `0` then the port is known only when the `EmbeddedServletContainer` is initialized
    - Add `update` method in `ContainerRepository` to update the container data
    - Update container data (attributes) along with container port info
  - Add REST endpoint that shuts down container by `containerId`
    - Get container host and port from container attributes
    - Use `RestTemplate` to send `POST` request to shutdown the container
    - Throw `NoSuchContainerException` if container is not found
    - Add test
- Handle error scenarios
  - During `containerRepository.update` if the container path doesn't exist, throw `NoSuchContainerException`
  - Add tests for `containerRepository.update` scenarios
  - Check `zkConnection` before calling `containerRepository.update`
  - Throw `ContainerShutdownException` when the response to shutdown container results in exception
- Use the management port
  - Use container server's `management` server port to access shutdown endpoint.
    - Handle the `EmbeddedServletContainerInitializedEvent` when the event comes out of management server's servlet container. The namespace for this context is set to `management`. Hence using that to distinguish the event
    - Make sure the management port is always updated when the above event is processed.
    - Update the container attributes with mangement port (if used) before registering with ZK on the `ZKContainerConnectionListener`s onResume() and onConnect events
- Message rates from admin server
  - Access jolokia endpoints for deployed modules' message rates from admin controller
    - This will allow us the client don't make direct connection to the container
- Fix review comments
  - use `ModuleType` and `DeploymentUnitStatus.State` in ModuleMetadata model
  - fix javadoc
  - Fix hasLength -> hasText
  - fine tune updateDeploymentStatus method
XD-721 Test Job Module addition after XD Start
Fix NPE at shell utils

 - Add null check on Table and UiUtils where the value properties are
evaluated.
XD-2105: Make SI property accessors available to bus partition selection
XD-2105 polishing
XD-2094 XD Cluster view

- Add `containers` tab
  - this renders the contents of `cluster/containers` REST endpoint
  - update the containers info with
     - groups
     - deployed modules
       - if the management port/jolokia are enabled, then deployed modules will also display message rates which can be configured via property in `routes.js` `$rootScope.enableMessageRates`
     - `shutdown` option if the management port is enabled
- Add tooltip on container and deployed modules values to display container and deployment properties respectively.
- Add confirm dialog for container shutdown
  - Disable shutdown action if management port is disabled
  - Align container id as plain text in the table
XD-2094 Add `xdPopover` Directive
Use strict REST domain objects

 - For `ModuleMetadataResource`'s module type and deployment status,
use `RESTModuleType` and `RESTDeploymentState` that represent the
module type and DeploymentUnitStatus.State.
XD-2095 WebUI: Support stream deployment props

- Add support to specify deployment properties when deploying stream
- Add a form that accepts text box for `deployment properties` and submit `deploy` action
XD-2100 - Initial POC
XD-2100 Refactored to use @Configuration for AnnotatedPojoModule