Run only aux kernels of the same type

This addresses issue #2172.
NOTE: `bool reinit = true` in `reinitMaterials` et al. is not the best way how to do this. In this patch it is needed for stateful materials to work, because it is relying on the side effect of the call, i.e. resizing the arrays and switching the underlying pointer. Without the call, initial values of stateful material properties would be wrong. There has to be some more work to address this issue.
WARNING: This **will** break elk and all applications above. Do not merge until these are patched...

Sending a pull request to get the discussion going...