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