Move code example rendering logic

- Logic moved from BlockCodeRenderer -> CodeExampleRenderers
- This will make it easy to set up a factory pattern
Rename CodeExampleRenderers to CodeExampleRenderer
Extract code example template stuff into a class
Define code example renderers with factory pattern

- Remove *Example classes
- Use CodeExampleRenderer::Factory to dynamically generate example
classes for different code types
Move code example template logic out of CodeExampleRenderer

- Each factory definition now defines which templates to use