Begin `OutputContext` Specialisation

All output will have to be done with a subclass of OutputContext. Planning on
having two main subclasses for callback-based and template-based output. For the
moment the C one just relies on implementing the required private methods.
Move `Namespace` object to `parsegen.utils`