Dockerclient list images ports 207

Design review only (issue #207), there are a few other bits of code throughout flocker that need to swap out "unknown" or other null / fake information for real image and ports info coming from `DockerClient.list()`

This locally passes unit and functional tests for the two tests added (test image name from `list()` and test `PortMap`s from `list()`)

There is a theoretical possibility of a `ValueError` when `list()` attempts to cast the `unicode` port values retrieved from Docker to `int`s. I don't know whether to catch those in this code, or leave it to the caller of `list()`'s returned `Deferred` to add an `errback` - comments on this would be appreciated.
This is probably enough extra fiddly stuff that it's worth factoring into a separate function.