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?