Add single argument methods from Math onto Number

The Number implementation has been fleshed out with methods from the
JavaScript Math object that operate on single numbers. Operations that
produce NaN raise Not A Number. The Number type has been extended to
include both the new types and some missing old ones, and a new type
'Order' has been introduced that includes the comparison operators.
Add string utilities to String

The String implementation has had a number of utilities added to it,
including ordering, find and replace and index searching. The index
searching should also be on Sequence, but it is harder to implement due
to the JavaScript indexOf not allowing a custom comparator. The String
type has been updated to include these utilities.
Move setimmediate import to appropriate module

The import of the setimmediate module was in the interpreter rather than
in task, which produced an issue of import order if setImmediate was not
already present in the system. Now the task module will import
setimmediate before setting anything else up, ensuring that it exists
before the task mechanism is used.
Add asPrimitive method to sequences

Sequences will now convert into JavaScript arrays when passed into
foreign functions. They will attempt to convert their contents to
primitives, if the appropriate method exists. This ensures that
sequences of objects that can be converted to primitives work seamlessly
with foreign definitions.
Use foreign lookup when objects in scope

When an object was a Grace object, but had methods which were foreign,
there was no coercion of parameters and result, and no special lookup
for built-in methods occurred. The same applied to objects which were
not Grace objects, but appeared in scope. Now the lookup only considers
whether the requested method is a Grace method, and is applied to
lookups on a self or outer object in scope.