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