Update port conflict checker to distinguish between conflicts and exact matches.

This is a fix for #1359837 (https://bugs.launchpad.net/juju-core/+bug/1359837).

Opening a port that is already open should not result in an error.
Please, add the following tests, where missing:
```
a = [..]
b = {..}
ranges     a.F,a.T b.F,b.T
[] {}      100,100 200,200
[..] {..}  100,200 300,400
{..} [..]  300,400 100,200
[..{..|    100,400 200,400
{..[..|    200,400 100,400
|..]..}    100,200 100,300
|..}..]    100,300 100,200
[..{..}..] 100,400 200,300
{..[..]..} 200,300 100,400
|..|       100,200 100,200
```

I know some of the tests I'm suggesting below you did, but not all combinations, and I'm still a bit worried we're not handling all possible conflict cases with that single if in CheckConflicts.