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.
Does this check that even just happens once during the entire program's runtime justify the use of generics just because of that one advantage?