Add support of different Printers

So now we can specify different printers, which defines the text we send
to the interface. Added support of plain text printer (which displays
the texts currently used in debugger) and XML text printer, which I'm
going to use to recreate ruby-debug-ide functionality here, in the
'debugger' gem

You can specify what printer to use by Debugger.printer accessor.
Add XML texts for the 'break' commands
Add XML output for 'condition' command
Add XML output for the 'continue' command
Add printers support to 'restart' command
Add printers support to the 'display' command
Add printers support to the 'edit' command
Add more printers support for enabling/disabling, deleting breakpoints
Add printers support to the 'eval' command
Add printers support to 'frame' commands

Also, tweaked the Context#frame_id, Context#frame_file and
Context#frame_line functions, so they don't fail with segfaults if
rb_iseq_t *iseq points to nowhere. Unfortunately, my C/Ruby internals
skills are not good enough to understand why *iseq maybe sometimes nil,
but better to not show some frame line sometimes than failing with
segfault.

We probably need to figure out though why *iseq may be nil sometimes
Add error message when trying to use 'edit' with XML printer
Add error message when trying to use 'help' with XML printer
Add error message when trying to use 'info' with XML printer
Add error message when trying to use 'irb' with XML printer
Add printers support to 'jump' command
Add error message when trying to use 'kill' with XML printer
Add printers support to 'method' command

Also added ability to print variables both to all printers
Add printers support to 'quit' command
Add printers support to 'reload' command
Add printers support to 'save' command