Support more complex port specs (external:exposed)

Add support for detailed port specs for non 1:1 port mappings in the
following format:

  ports:
    port_name: <external_port>:<exposed_port>

Where <external_port> is the port that will be made available on the
host of the container (the external port) and <exposed_port> is the port
exposed by the application running within the container.

Signed-off-by: Maxime Petazzoni <max@signalfuse.com>