Extract Document into it's own file

Document and it's value oobjects now include attribute methods
Extract LineProcessors as constants

Moves Contexts into its' own file.