Refactor of the Java Parser
Mod:
    Parser.java:
        - Moved client reading and writing methods to the abstract
          parser class, so that it is not specific to the JavaParser

    JavaParser.java:
        - Implemented NodeVisitor._cache.  The cache is a stack of data
          packets.  When a node that we want information on is first
          visited, a new packet of data is pushed onto the stack.  The
          child nodes of that original node than add information to the
          packet, and when the original node is traversed again on the
          way up the tree, the data is popped from the cache and added
          to the symbols.  This makes it possible to gather information
          about various levels of the tree easily.

    JavaSymbols.java:
        - Refactor all the insertMethods to simply add a packet of data
          to the appropriate HashMap.

    Symbols.java
        - Add a createCoord method which returns an arraylist
          representing a point in a document.