Undebuggered
Updates management of uniqueId/internalIds to be unique to the object type
Fixes m_ that should have been _
Adds event handling and Model property support
1. Now accepts an events input to the constructor
   to avoid having to use on() after initialization has completed
2. Properties are now defined on the model to reserve property names
   such as internalId, events and constructor, and enforce validation
   on them.
Adds test to see if debugger; was left in by accident