MODE-2224 Java Source File Sequencer Problems When Sequencing Interfaces, Typed Collections, And Nested Types

I created a new source file recorder that eliminates the "metadata" layer of classes that existed in the old source recorder between the JDT and the JCR nodes. Since a java file can contain more than one top-level class, I have created a "compilationUnit" mixin that I add to the output node that gets passed to the sequencer. This output node is where the compilation unit's non-javadoc comments, imports, and compiler messages are being stored. I've tried to make the CND changes backward compatible by adding new nodes for the information that was not being persisted. A couple complex JDT/Java constructs, expressions and statements, have not been broken down in the design (just a toString representation is being persisted). New tests that test various forms of class, enum, interface, and annotation type definitions have been added.