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.
I don't like this.  It should be insensitive to which PPField class we pass it.  We should not be testing which instance it is in order to determine how to retrieve the 'correct' data from it.  We should be calling the objects method which returns us the correct data.

Not having looked at the code later on, I would first think about whether we could utilise the datetime object returned from calling Field.t1 and Field.t2 instead.  Perhaps this is not possible but I have not looked further yet.  In any case, it does not feel right that we have to check the type to determine what we are going to retrieve call from it.