eval to generate correctly named constructor
Remove funny prototype stuff

I don't understand why it was there but removed it anyway because:
* more normal
* frees up a name for use
* makes inheritance easier
add tests for changed(<attr>)
fix changed when the dirty attribute is falsy
basic set property implementation
add inheritance option
Merge branch 'feature/inheritance'

* feature/inheritance:
  add inheritance option
  basic set property implementation
make dependencies npm compatible
magic getters and setters

this is terribly slow in firefox and won't
work in anything past IE9 but works well in
webkit so fuck it firefox is slow anyway
Merge branch 'feature/magic'

* feature/magic:
  magic getters and setters
make properties enumerable
store instances in an array
track instances
Merge branch 'feature/enumerable'

* feature/enumerable:
  track instances
  store instances in an array
added default properties handling
prevent false change events for cardinality 1 attributes
made Base useable for making singletons
abstract the concept of a manager