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.
Perhaps now the entire `Unit` can be compared here.  If not, there's probably still some (perhaps unrelated to this issue) work left to do that merits some other TODO comment.