Update package information with correct license

The previous package.json file had the wrong license information in it.
The other fields have also been rearranged into more sensible groups.
Adjust assignment uglify, add missing argument

Uglifying an assignment would produce 'name_:='. The underscore is now
no longer present. The missing node argument when calling 'put' when
scoping variables has been added.
Add method getter and arguments helper to apply

Specialised uses of apply had to reference the receiver of the method
and then separately retrieve the method from the receiver. If the method
took no arguments, apply still had to take a nested array. Now apply
optionally accepts a string instead of a method, in which case it
retrieves the method with that name from the receiver, and the arguments
default to empty.
Tasks are completely asynchronous by default

Allowing task continuations to run synchronously produced a memory leak
that blew the stack out easily in recursive method definitions. Now
calls to 'then' on a task follow the Promises specification by dropping
the call stack before continuing. However, this behaviour can be
overridden by the 'now' function, present on every task, which forces
each subsequent task to run immediately as well. Trying to force a task
in this way fails if the task has truly asynchronous behaviour.

A number of definitions in the runtime have been updated to adjust to
this new interface. Method application still uses setImmediate, but
rather than creating a custom 'now' as it did before, it binds into the
new 'now' interface by setting the memoised function to be run on force.