Prima donna method smell

This implements the PrimaDonnaSmell as discussed here: https://github.com/troessner/reek/issues/51

I took the smell definition from here: http://dablog.rubypal.com/2007/8/15/bang-methods-or-danger-will-rubyist

Note that the first commit alone is enough to implement this feature, the second one is there  to get rid of all introduced smell warnings and to implement a cleaner, better abstracted architecture.

I will also add a corresponding wiki page after this PR has been accepted (and of course squash it)