Add convenience wrapper to curl module to urlencode/decode strings.
Converted the JIT cyclic resolution to use ModuleMerge and fixed all of the
resulting fallout.  This fixes a condition where a vtable can be referenced
before its functions are defined, which caused a branch to null because of the
way the JIT dealt with weakly linked functions.

Also did a few style cleanups.
Removed the list of unresolved externals from the system - the only purpose
they served was to deal with externals unresolved in individual modules in a
cyclic group and now that we're merging the cyclic group that doesn't happen
any more.
Add ability to JSON encode StringArrays in addation to Array[String] as a
special case;
Add the ascii.bin() fuxtion, which is the reverse of ascii.hex();
Merge
Add another text for bin() function: creating a mongo Oid from a hex string.
Handle null case for ascii.bin() and mongo_support.Oid(buffer).
Correct ascii.bin() indentation.
Rename BSON.appendOID to BSON.appendOid.
Rename Oid.isZero to Oid.isTrue.
Update ascii.crk copyright dates.
Add a FormData convenience class to crack.net.curl to encode/decode
application/x-www-form-urlencoded data.
Add normalize, parent(), makeDirs() and deleteTree() methods to Path.
Deprecate direct construction of RealPath, users should use 'makePath()'
instead (which does normalization and will hopefully be more stubbable).
[Missed files from last change] Deprecate direct construction of RealPath, users should use 'makePath()'
instead (which does normalization and will hopefully be more stubbable).
Add normalize, parent(), makeDirs() and deleteTree() methods to Path.
Small formatting tweaks
Merge
Make screen evaluate variables at test creation so we can introduce a UNIQ
variable which produces a value unique to each test.  Also, replace use of the
old filesystem module with crack.fs and generally refactor some of the
basic functionality.
Added the systest module to support compound tests.  Also added two example
compound tests, one of which already illustrates a bug.
Fixed incorrect return type.
bug fix: 0xb* constants trigger b'x' processing.  Changed the formatting of
string integer constants so they can be disambiguated.
Make VarMap.expand() non-static so it actually works.
Add support for setting tracing in systest.  Implement a test for cached
module regeneration.