Update for current versions of Sinatra, and simplify implementation by using core objects directly

Enjoyed this script of yours, and made a few fixes:

* I corrected the method_missing implementation so that is no longer raises TypeError on boot inside Sinatra 1.3.3
* I switched to using a hash of lists to simplify the implementation significantly

Note I'm using some ruby 1.9.3 constructs here (e.g. hash keys, #sample), so this breaks backwards compatibility for the 1.8 folks.