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.
The order should probably appear under a `.. note::` markup.  Since this function is in its own private module, I think an iterable describing the element priority would be more useful and transparent.  The default could still be highest priority to first and lowest to last (as it) so this would simply mean changing this function, not the call to it.