PP/GRIB load rules as a function

This PR was motivated by the discussion at: https://groups.google.com/d/msg/scitools-iris-dev/4GXbePUWtMY/oqVO_3gFFoAJ

> 7.5% reduction in the overall time for pp.load_cube, or a 9.5% reduction in the field-to-cube time.

That result still holds true in this branch.

> Plus there's an added benefit, the rule processing system becomes a whole load easier to read and debug!

Sadly, there's not *yet* much reduction in the total complexity of the rule system. That's because of the need to keep the custom user-rules capability around for a while. But at least the normal processing is definitely simpler and more easily debugged/profiled.

NB. Also see SciTools/iris-code-generators#3 for the code which produced the new rules modules.