DropMessage refactoring: Don't use generic-parametered DropMessages

but ModelObjects as `data` field that shall be casted to specific target types afterwards.

Perhaps a reasonable way to get rid of the template-bracket-frenzy that's spread all over the code.
Please review and critizize - I haven't spent so much time in semantically walking through all the changes.

Resolves #199 once merged.
So you'd use it as `msg.getData().as(MyMsg.class).getStr()` then? Well, why not. It's still letting programmers have a choice, so..yeah.
We still could preserve some `getData<MyMsg>` as well as a non-generic `getData()` which just returns an object as-is though.