Add printers

It will allow to specify different ways of printing to IO (STDOUT, or somewhere else, e.g. sockets). We need that for adding IDE support, since it is more convenient for them to communicate via XML or JSON or something like that instead of just plain text.

As an example, I added `byebug` support to [debugger-xml](https://github.com/astashov/debugger-xml) ([#18](https://github.com/astashov/debugger-xml/pull/18)), so now [vim-ruby-debugger](https://github.com/astashov/vim-ruby-debugger) supports byebug as well. Which is kinda cool :)