Optionally allow input methods to return promises

This PR allows the inputfun that is provided via the configuration to return a promise or a string value.  If a promise is returned, an Sk.misceval.Suspension is created and the script is delayed until the inputfun promise resolves.  This should let users create more UI-friendly input methods rather than browser prompts.  Will be a great addition for REPL mode in particular.