Dockerclient list images ports 207

Fixes #207 

Various parts of the codebase that referenced this issue have been updated along with their tests in this branch, to either make use of the `image` data now supplied by `IDockerClient.list()` or to explicitly declare an `image` of `None` on `Application` instances in tests that did not previously make use of an image at all - note that the `image` attribute of the `Application` model no longer defaults to `None`, it is now mandatory to declare when creating an `Application` instance (although can still be set to `None` if desired).
Some of our functional tests reveal that `Ports` can legitimately be `None` so this check is necessary. At first I thought it was guaranteed to be a `dict`, but that only seems to be the case when containers are created via the command line.