Use Map parent to compute colouring in plan

When imposing boundary conditions on matrices we make some of the map
values negative and remember where the map came from in the _parent
property.  Fix a segfault in plan construction when boundary conditions
are applied by always computing the colouring on the parent map if it
exists instead of the map itself.
Fix race condition in extrusion for OpenMP backend

The implicit extruded maps we build are private to each thread, however
we were previously building them as shared.
Make Arg iterable
Implement splitting of matrix Args
Override _data property on MixedDat to return tuple
Iterate over mixed arguments when building unwound args list
Split mixed Dat/Mat arguments when passing to kernel wrapper
Enable mixed unit tests for matrices and indirect loops
Eliminate duplicate code path when building unwound args