Added cube method slices_over

Added a new method to `iris.cube.Cube` called `slices_over`. This is very similar to `cube.slices` but has near opposite functionality. So while the slice references in `cube.slices` are references to the dimensions returned in the subcubes, in `cube.slices_over` the slice references are references to the dimensions to be sliced along.

For example:
```python
>>> cube = iris.load(iris.sample_data_path('uk_hires.pp'))[0]
>>> cube
<iris 'Cube' of air_potential_temperature / (K) (time: 3; model_level_number: 7; grid_latitude: 204; grid_longitude: 187)>
>>> res = cube.slices_over('time')
>>> print len(list(res))
3
```
It's usage is not consistent throughout the module, indeed in the other cases (e.g. [cube.py#L812](https://github.com/dkillick/iris/blob/slice_over/lib/iris/cube.py#L812) and [cube.py#L877](https://github.com/dkillick/iris/blob/slice_over/lib/iris/cube.py#L877)) the directive is not being used. However as there apparently are examples of this directive being used (e.g. [cube.py#L1256](https://github.com/dkillick/iris/blob/slice_over/lib/iris/cube.py#L1256)), I'm quite happy to change it; it'll look nicer in the built docs if I do :smile: