Fig compatibility layer 649

TODO deal with port edge cases, e.g. just container port specified, or IP and port specified on host
See http://www.fig.sh/yml.html
Issues have been raised for this missing functionality, which is not yet supported by Flocker.

Fixes #649
:question: I can't append to a `frozenset`, which I do in between those two lines, but it has to be cast to a `frozenset` at the end to make `Application` objects hashable.