Update `Class` unit test

Check that instance and static properties are set correctly.
Allow custom constructor for extended Class

Inspired from Jeremy Ashkenas Backbone implementation, allow user to
pass a `constructor` property to override the default constructor for
all classes.
Update `Class` with `implement` static method

The `implement` static method is similar to `extend`, except that it
adopts properties from one or more other classes without inheritance.