Refactor to allow for multiple markup renderers.

 - Remove toXHTML from ASTNode, and add in a toSmallString to serve the
   purpose of checking if some rendered AST contains visible elements.

 - Turn MarkupRenderer into an abstract generic class and augment it
   with methods to produce the target type from an AST.

 - Create a CreoleRenderer abstract class, based on CreoleASTBuilder, to
   render markup and track enabled directives.

 - Implement HTML rendering using this.

 - Perform main wiki rendering with the new HTML renderer.