UM fields array structure identification for fast loading.

Context: 
The key external interface is "group_structured_fields"  (in iris.fileformats.um._fast_load_structured_fields).
 * this returns 'FieldCollation'-s ..
 * .. which are in effect triples of (vector_dims, dimension_elements, element_arrays_and_dims)
 * .. so something else can turn that information into cubes.

There is no actual user API yet. 
Most probably will be an experimental 'iris.load'-like function, which will take filenames + return cubes.
Because I originally included an extra commit from 1.7.x, which I since removed.  Despite cherry-picking the original commits back onto 1.8.x and checking out the previous version of the file both times it changes, git insists that the file is touched on the history + therefore should have a 2014 date.  After a lot of faff, I reckoned the easiest fix was just to update the file.