Fix prototype inheritance issues

Presenter, Route, and Cache were all overwriting the prototype object,
rather than extending it. This caused problems when attempting to extend
the object, i.e. with CoffeeScript's class extend.