Made the Python input function configurable via Sk.configure, just as output is.
Added "continuation"-like capabilities to support yielding in the middle of compiled JS code and then resuming where it left off.

Accomplished by generating an FSM state before any function call
(callsim or call instruction), and keeping track of a stack of states
and "contexts" (values of locals/globals/definitions) at the point of
the call. Yielding is performed by calling Sk.asyncCall, which throws
an instance of AsyncResultRequest that should be handled by the host.
To resume, call Sk.sendAsyncResult.

There are still some known cases where this doesn't work. (Most
seriously, using the input() function inside class methods.) This is a
starting point and needs much more work and testing.