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
Actually what you describe is indeed possible; the reading of the attributes and writing to ZK is not an atomic operation. So we could miss the write in the following sequence:

Ct = Curator thread
At = Application context thread

* Ct reads attributes
* At writes port attribute
* At checks for container null, it does not exist
* At finishes processing Application Context event
* Ct writes attributes to ZK, missing the port

Right now I'm guessing that a synchronized block may be the way to go...