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.
This could do with a different name - "decreasing" is inaccurate. Also, the logic would be clearer with an explicit `if`.
```python
# Either ...
if points[-1] > points[0]:
    direction = 1
else:
    direction = -1

# ... or
direction = 1 if points[-1] > point[0] else -1
```