Allow function to be passed directly as varCallbacks

This makes writing callbacks for Structured terser and decreases
the room for error by guaranteeing that the parameters which are selected
are the same as the ones the function is expecting.

Test Plan:
Make sure the test suite still passes
Allow function to be passed directly as varCallbacks

Summary:
This makes writing callbacks for Structured terser and decreases
the room for error by guaranteeing that the parameters which are selected
are the same as the ones the function is expecting.
(We determine the variables required by introspecting the function)

Test Plan:
Add tests to the test suite checking the new input schemes
All tests pass

Reviewers: john

Subscribers: #cs

Differential Revision: http://phabricator.khanacademy.org/D13250
Updated docs

Test Plan:
They're just docs.
Responded to review comments (mostly stylistic)

Test Plan:
Check the test suite
Added a comment about varCallbacks.failure

We want to get rid of it, but we'll need to change lots of other code.
I'll make the whole thing part of a bigger update.

Test Plan:
It was a comment