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
BTW, I wouldn't bother with this. The general pattern is that we just inform of changes; client code is responsible for finding out what changed, including potential removal.

(Also there's no need to report a missing document unless it was previously reported when not missing -- it doesn't look like we track this? -- but I guess it's not strictly necessary: client code should be prepared for missing entities at any time, I think.)