Add additional binding against the CourseParserRoutine for additional
binding point (for ensuring that the binding retrieved is for course
parsing).
Adjusted the class hierarchy, refactored some method names, adjusted
some constants.
Improved commends and modularity around the ParserRoutineMap
Improved the XMLCourseParserRoutine to be commented and have some extra
abstraction.
Improved the package structure for the course data parser routines
Improved binding for the parser tools and routines.

Improved logging in the Guice modules.
More accurate comment for loggers
Fixed a bug that was preventing the subcodes from being properly found.
Need a unit test against that :)
Fixed a minor bug with the PropertiesFilePreferences implementation that
would unnecessarily create directories corresponding to Preferences
nodes that were created in memory, loading from disk was attempted, but
flushing entries back to disk never occurred. 

For example, retrieve the node "/foo/bar/baz" to see if any entries
exist. Say that the folder foo exists, but that bar does not (and as
such the file backing the baz node). If no entries are placed into the
preferences node for /foo/bar/baz, there will be no need to flush the
node to disk. The bar directory should not be created in this instance.
Adding additional factories to support necessary helper parser routines
Created the XML helper routine base class and its factory helper routine
Added ParserConstants class for aggregating common constants. 

Ready to Guice the SectionBased XML Helper Routine
Started adding the module components for the helper routine.

Need to make a distinction between ParserRoutines that work on
InputStreams and those that do not accept input streams. Maybe
having the "illegal" constructor throw an exception
(InvalidUseCaseException) is ok. Need to think about it...
Adjusted the ParseRoutine hierarchy to better accommodate helper parser
routines that have different factory parameter requirements than
CourseParserRoutine instances
ParserRoutines are now fully Guiced.

Need to figure out how best to allow multiple tasks to update the same
data set cleanly.