BUG: Handling of guess_bounds for circular coords

Currently, cube.intersection is broken for some cases where we have derived the bounds via `Coord.guess_bounds` because the bounds calculated are not correct at the edges and so produce an incorrect range.

This results in the following error when using `Cube.intersection`, raised within `Cube._intersect_modulus`:

```Python
ValueError: coordinate's range greater than coordinate's unit's modulus
```

This PR corrects the handling of circular coordinates in `Coord.guess_bounds`.  Also fixing the case where the above exception is raised for guessed bounds.
hehe thanks @rhattersley I was playing around with different ways of doing this and the simplest and clearest eluded me :)