Fixed issue of cross year end datetime-like cell comparison

This addresses issue #984. It fixes new datetime cell comparison using ```PartialDateTime``` and bounded cells that span the end of a year. For example:
```python
from iris.coords import Cell
from iris.time import PartialDateTime
import datetime
cell = Cell(datetime.datetime(2012, 1, 1),
            [datetime.datetime(2011, 12, 1), datetime.datetime(2012, 3, 1)])
print cell.contains_point(PartialDateTime(month=1))
```
currently results in False. This PR makes this become True.

Is the logic flawed? Possibly. Does it fix a real problem? Yes. This datetime stuff is tricky :smile:.

Replace #995 to target v1.6.x