Move Output Processing to Member Functions

Output Context member functions are now responsible for all of the output. This
will need refactoring more when the new options implementation is in place.
Add Namespace Class

Responsible for allowing easier read access to options.