Refactored Program API

@dwoos, please can you make sure there is nothing too offensive in here. Bear in mind there is a separate load PR coming where I have updated your scoring tests accordingly.

Headlines:
 - The ability to register helpers and attr helpers has been removed in
favor of just making everything an interpreter. Determining whether a
given interpreter results in a request and therefore should contribute
to the overall test stats is indicated with a boolean arg when
registering the interpreter.
 - Rather than using helpers to wrap interpreters, the idiom is that
interpreters can just call other interpreters directly, passing the
next callback. This has the advantage that the wrapping interpreter is
invoked at run time.
 - Largely rewrote the http_program to support embedding dynamically
evaluated functions in the option hash, and removed the ability to pass
a separate options function. This is a little cleaner. Also introduced
SuperAgent to make doing an HTTP requests a little less painful.
 - Implemented an install() idiom for programs.