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.
@axw The idea is to keep port ranges the way they were defined. So if a port range 80-100 is opened and later on 101-200, they are reported as two separate port ranges. This makes the logic of port handling simpler (i.e. only the exact port range that was opened can be closed).