Added Foreign Tasks
Added Foreign Tasks

Foreign Tasks are compiled by the VM on their first call and cached
using the module.exports function acting similar to require. The context
is sandboxed but native modules or even the require function can be
provided through the context object. The context object is converted to
a VM Context before being passed to the script. Note that a !isModule
mode is provided for Virtual tasks where the script is recompiled with
the context on every go without any regard to module.exports. Although
compilation of scripts is rather slow there might be some use for this
feature in the future such as dynamic self improving scripts.

schahriar/supertask