Add new Object-Oriented API.

Adds an epically awesome new Object-Oriented API.
FAR easier to use, cleaner, nicer and way more type safe.
Full of magic awesomeness (descriptors ftw!).
Just use it. Seriously.
Fixes #19.