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
Thinking about this some more...I *think* this may work - think about it and let me know if it makes sense:

When the `EmbeddedServletContainerInitializedEvent` is raised we should:
* update the container attributes
* update the ZK node *if it exists*

If the node does not exist, we know that the container is in the process of registering the container. When the container is registered, the attributes (including the port) will be written to the node because we know that port attribute was added *prior* to the creation of the node.

Of course, as a pre-requisite we need to modify `ContainerAttributes` to be thread safe as mentioned before.