test definition for desired outcome of this branch
failing test implementation for restarting an application with a new image
failing tests for changed ports and links too
partial implementation completed
add Ports to applications_from_units in discover_node_configuration()
Merge branch 'dockerclient-list-volumes-289' into apply-image-changes-354
WIP on applying application configuration changes, with a couple of failing tests
Make the default Application.links be an empty frozenset instead of None.

This fixes the new application change detection code by making "inspected"
application state have the same shape as "desired" application state -
making both cases represent "no links" as an empty frozenset instead of
making one of those cases use None to represent that.
Create the volume that the test wants to exist.

This is necessary on top of just telling the FakeDockerclient that
the unit has a volume.  Without it the storage pool and the docker client
have inconsistent volume state which is confusing and hopefully impossible
in real life.

It would be nice to have some nicer test scenario setup code so as to avoid
the need for this duplicate state setup.
AttachedVolume.from_unit returns volume wrapped in a set
extrapolate Link entries in Application objects derived from Unit objects that are returned by DockerClient
in other words, horrible as it is, rely on RegEx parsing of environment variables in a container that match the format of <ALIAS>_PORT_<PORT>_TCP_PORT to derive the alias, local port (from the variable name) and remote port (from the variable value) for a Link. ** We do not have another way of doing this right now **
test outlines to address review comments
link and port tests for Deployer.discover_node_configuration
test restart once only when creating volume on changed application
address review comments; revise tests to remove hardcoding of Unit environments and replace with links parsed in to environment via StartApplication
Merge pull request #922 from ClusterHQ/apply-image-changes-354

Apply image changes 354