Start refactoring dependency checker to make it partially incremental
Refactor dependency checker
Removes threading
Merge remote-tracking branch 'origin/incremental' into incremental

Conflicts:
	teavm-core/src/main/java/org/teavm/dependency/DependencyChecker.java
Speed-up dependency checker
=
Fixes small bugs. Introduces a new class source that does a slight
optimization before providing classes.
Adds AST caching
Fixes bug in GVN
Cache optimized programs with allocated registers
Merge remote-tracking branch 'origin/incremental' into incremental
Add cache package for input/output of symbol table, SSA and AST
Add method that writes program to file
Add reader of a program
Add read support of several instructions
Complete program IO. Add caching of classes on disk
Add writing class to disk
Complete disk cached class source
Fixes problems with reading and writing a program
Disk cached classes and programs
Add AST writer