Error if attempting to iterate over a MixedSet

We currently dtwt if passed a mixed iteration set to a par_loop, so
raise an exception instead.
Add magic methods to MixedDats

This allows +, * and friends to work as expected.
Add inner and norm methods to Dats

Only l2 inner product implemented for now.
Add Dat.sum
Fix format arguments for _check_shape
Add inline declaration to all created kernels