Update `Class` implementation.

Simplify `extend` methods by combining John Resig and Jerymy Ashkenas
implementation of prototype inheritance.

The `extend` method now supports the ability to add prototype properties
(instance properties) and static properties onto the subclass.