Introduced concept of JsContext to JsRunner

A JsContext basically keeps track of objects that
are to be put in scope when a JS function is called.

There are 2 types:
- ArguementJsContext: Provides objects 'as is' defined
by the specified name.
- JsonJsContext: Provides objects as a single JSON string,
unless told they are not serializable.

NOTE: Compliance rules are completely busted.