Fix issue where properties were not being removed properly

@jdaudier - We got it.

There was a pretty subtle bug that showed up in the way we were serializing objects and there ancestors, where the ancestor properties (Backbone.View.prototype.tagName) took precedence over class properties (MyListItem.prototype.tagName). This fixes that by reversing the list of properties and adding an empty `{}` to the front so that nothing is overriden.