eclipse usually just wants 'null' instead of a zero-len array.

In this particular case, ecj8 (but not ecj7) would start printing extra
spaces, causing tests to fail. Other things tend to break too, so,
we're sticking to the 'null for empty arrays' model.
some pretty significant changes to the build system, to try and add testing against ecj8 to the lineup, and to force compilation with the bootstrap classpath of JDK6 so that we won't accidentally add deps on things that JVM6es don't have.
bugfix for errors with ecj8 and builder.