Customizable Renderers

Trying to make renderers customizable

- [x] introduce EventEmitter
- [x] Renderer constructor function in `options.renderers`
- [x] README
- [x] refactor