Merge pull request #11 from Brinsky/master

Target auto-detection (and config file override ability)
Simplified typechecking to avoid duplicate checks.  Tremendous
improvement in compiler speed.

Small updates to testing files to bring them in line with current
meaning of readonly and immutable.
Made it so that system imports are relative to the config file (if
specified).

No config files are necessary for Linux and MacOS (but Windows needs
one).  Special testing config files are provided so that testing can be
done in Eclipse (which lies about where the compiler class files
actually are).

Merge remote-tracking branch 'origin/master'

Conflicts:
	src/main/java/shadow/Main.java
	src/main/java/shadow/output/c/Main.java
	src/main/java/shadow/typecheck/TypeChecker.java
	src/main/java/shadow/typecheck/TypeCollector.java
Added reasonable default config files for Windows and Linux
(non-Windows).  These are especially important for running tests in
Eclipse.
Updated compiler so that it generates .ll files with the correct case
(UShort.ll instead of ushort.ll).  This fix prevents unnecessary
recompilation of some files on systems where case matters for file
names.

Added an explicit configuration file for typechecking and parsing unit
tests (as was already added for output tests).  These allow unit tests
to work in Eclipse (and Windows) in addition to the command line.