Reverted the remove method.

I was trying to get the remove method to recursively remove items, this
would allow for events and more functionality on removal. With the
current architecture, it just won't work. It's the way you have to pass
the modelType around really. Makes for nice code, hard to iterate over
the data without the raw code though.
Merge branch 'develop'