Port range support in the firewaller.

The firewaller watches the openedPorts collection, the ports field on units is no longer updated.

This work fixes https://bugs.launchpad.net/juju-core/+bug/1337817
I don't think this is quite adequate -- in particular, you need to check that the StringsWatcherId corresponds to a registered watcher that actually works as you expect. Some of the other API watcher tests certainly do this, so there shoudl be examples; if you spot any that don't, maybe badge them with a TODO and bug#?