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
Yes, but I think that would still mangle encapsulation of the objects; with the approach I've taken, I guess I'd think the class `Configuration` should be `FlockerConfiguration` and `applications_from_configuration` should be outside either the Fig or Flocker configuration classes, where detection logic is also a standalone procedure, or `applications_from_configuration` would be part of generic `Configuration` class that detects the format and instantiates the correct parser of the two, passing the configuration dictionary to it.
Thoughts?