WIP: Port ranges provider support

Working on https://bugs.launchpad.net/juju-core/+bug/1337817 - enabling port range support in juju-core. This branch modifies the provider interface and its implementations to handle port ranges. They are silently converted into old-style port slices on the firewaller. Port range support in the firewaller is still in progress.
I presume azure *can* do port ranges -- so at some stage we'll need a list of bugs for the various providers to make sure they handle port ranges effectively, but I guess it's not necessary while you're in midstream on this work?