Cleaned up the public interfaces.

Having everything crammed onto a single line made it very difficult to
read. By breaking the lines up it also exposed several unimplemented
functions that were difficult to spot.

There also wasn't any need for any of the .call()s.

    // These are exactly the same thing
    foo.someFunction()
    foo.someFunction.call(foo)

I didn't commit after doing a `rake build`. It seems to have changed 29 files, but almost all of them are .gitignored. If they're ignored why are they in the repo?