Smearing OpenMP

This pull request is mainly meant for code review purposes, although this is an important missing part of the implementation. @kostrzewa, could you have a look at the way I've gone about things?

Sorry about the merges polluting things. It's the final three (or really, two) commits that contain the meat.