Fix the derpy overwriting of refrences on a putted/patched event.

Now we compare URNs and only if they're different do we overwrite the
key. We then also call populateRefs after overwriting the bastard.
Add ability to select, filter, and sort based off of virtual attrs in dataModels
Automatically bind the virtuals to have the right scope.

This makes calling the virtuals crazily more easy.
Allow args to get passed to the virtual functions in dataModels.