Aggressive compressions in the encoding.

* Give very short names to classes used very often
  (Object, String, Functions, Tuples, primitives)
* Compress package prefixes used very often
  (scala.collection, java.lang, etc.)
* Use 1-character names for env top-level fields and
  array underlying.
Fix #549: Investigate and file buglisted partests
Fix #561: Make hacked Node.js console accept non-String values
Merge pull request #535 from sjrd/shorten-sigs

Aggressive compressions in the encoding.
Implement java.util.Arrays.sort w/o accessing underlying.
Fix #551: reflect.Array methods should tolerate widening conversions.

Widening conversions are defined in the Java specification as:
* byte to short, int, long, float, or double
* short to int, long, float, or double
* char to int, long, float, or double
* int to long, float, or double
* long to float or double
* float to double
Reclassify blacklisted partests
Fix #550, #555, #556: Remove hack for underlying and classdata.
Merge pull request #564 from gzm0/investigate-partest

Investigate partest
Merge pull request #566 from sjrd/remove-hack-classdata-underlying

Remove hack for underlying and classdata.
wip, looks promising.