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.
Thought about that. What do you guys think about the following:

```java
class ModelObject {
   ...
   <T extends ModelObject> T as(Class<T> cls) {
       return cls.cast(this); 
   }
}
```
(pseudocode)

This way we could remove the generic and still be quite sure about type safety as we can check everything in this method.