Feature/message mixin

Closes #120 

Implements the MessageMixin from @bmispelon. Had to branch to fix some merge conflicts. Also fixed a documentation issue and some PEP8 cleanup.