MPICH-related fixes

This is a combination of #1101 by @geimer and #1072 + #1073 by @ocaisa, and is mainly created for convenience of testing/reviewing and making minor stylistic changes.

The changes in #1101, #1072 and #1073 are all somewhat related, so it's important to tackle all of them together in one go.

@geimer, @ocaisa: if you happen to make any further changes to your open PRs referenced here, please let me know. As far as I know, they should be ready now, so I don't expect anything to be still missing here.
MPICH-3 is officially MPICH, but Intel has not allowed for this yet. MPICH in Intel langauge is MPICH-1, MPICH (i.e. MPICH-3) appears to be compatible with the triggers for MPICH2 in practice so we've given them identical behaviour here. You can try to figure out how libraries should be set here https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor in case this behaviour needs to change in the future.