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 more test cases here:
 - when a.From > a.To
 - when b.From > b.To
 - please in all cases use different unit names for a and b
 - rather than setting protocol to TCP everywhere, I'd leave the protocol blank and change the loop below like:
```go
a := t.first
b := t.second
a.Protocol, b.Protocol = "TCP", "TCP"
c.Check(a.CheckConflicts(b), gc.Equals, t.expectConflict)
c.Check(b.CheckConflicts(a), gc.Equals, t.expectConflict)
a.Protocol, b.Protocol = "UDP", "UDP"
c.Check(a.CheckConflicts(b), gc.Equals, t.expectConflict)
c.Check(b.CheckConflicts(a), gc.Equals, t.expectConflict)
a.Protocol, b.Protocol = "TCP", "UDP"
c.Check(a.CheckConflicts(b), gc.IsNil)
c.Check(b.CheckConflicts(a), gc.IsNil)```