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.
@thechauffeur It's no workaround but a very elegant solution to a problem we already got. I'll put that in uppercase: WE DO NOT KNOW TYPES AT RUNTIME AND WE FUCK UP WITH GENERICS BIG TIME.

With the this approach, we still check the types at compiletime so they make any sense, but can also check at runtime, which makes it possible to be less strict with type.

With this approach we can do both, compile time- and runtime checking of the type whereas with plain generics we can only do compile time checkins.