Apply image changes 354

Fixes #353, #354 and #730 via the same code block. 

See my comment on #730: https://github.com/ClusterHQ/flocker/issues/730#issuecomment-58671211
in regards to deriving `Link` objects on `Application`s; all we have from `DockerClient` `Unit`s are environment variables, such as `POSTGRES_PORT_5432_TCP_PORT=50432` or something in that format. Therefore to apply changes to the `links` portion of an application configuration, the only way I can see to do it at the moment (assuming we're being selective about what gets restarted, which we currently are) is to do some pretty awful regex matching on those environment variables to extrapolate the original `Link`s. I'm not happy with this approach, but someone's going to have to give me a better idea if they want this to change.

Oh and #351 and/or #352 *might* be fixed by this branch, but if they are, it's a happy coincidence and work would certainly still need to be done on those issues at the very least in respect of tests.
Since this logic isn't explicitly omitting applications handled elsewhere in this function, I'd worry some applications will end up restarted by this and then e.g. separately handled by volume moving block below or some other such issue. Please write a test to disprove this worry.