Rework emit, emit-class and add emit-classes

This commit changes the way that -emit, emit-class and emit behave so
that the class AST emitter is separated from compiling classes to
bytecode. This makes debugging the emitter easier as all emitted classes
are now data rather than compiled values injected silently into the
runtime. This also means that failed compilation no longer produces side
effects on the runtimes further improving ease of debugging.
Remove unused dep
Rework eval and load to use emit-classes
They're vars not atoms
Bound? is over vars not symbols
use class-name not name when loading
Fix that...
fixes, stop using a class cache, pass the dynamic-loader as a parameter
to eval
Merge branch 'feature/abstract-emitter'