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.
I've listed the test case descriptions corresponding to the tests you outlined. I'm not duplicating test cases for a-b b-a conflict checking, but rather running each test case both ways.
```
ranges     a.F,a.T b.F,b.T
[] {}      100,100 200,200 -> "different ports"
[..] {..}  100,200 300,400 -> "outside range"
{..} [..]  300,400 100,200 -> "outside range"
[..{..|    100,400 200,400 -> "overlap with same end"
{..[..|    200,400 100,400 -> "overlap with same end"
|..]..}    100,200 100,300 -> "overlap with same start"
|..}..]    100,300 100,200 -> "overlap with same start"
[..{..}..] 100,400 200,300 -> "complete overlap"
{..[..]..} 200,300 100,400 -> "complete overlap"
|..|       100,200 100,200 -> "identical port ranges"
```