wrap repl's output IO in Pry::Output.

`Pry::Output`  ensures all writes by pry and pry commands to `Pry#output` make a decision about displaying color based off `_pry_.color` instead of `Pry.color` by wrapping the IO object being used for output.

when `_pry_.color` is false shell color codes are stripped before being written to the underlying IO object that `Pry::Output` wraps.

pry commands don't need to worry about checking `_pry_.color` or `Pry.color` anymore
since the wrapper class takes care of it in one place. common methods used to write to an IO by pry and pry commands are defined on `Pry::Output` and other methods are delegated to the wrapped IO through `#method_missing`. `Pry::Output` is a subclass of BasicObject and responds to very few methods out of the box.

the sad part is `gsub`'ing ansi color codes out of the output when color has been disabled.

todo
- [x] update ColorPrinter, and commands, to no longer worry about checking `_pry_.color/Pry.color`.
- [x] update `Pry::*Pager` classes to strip color.
- [ ] fix `Pry::Output#puts`.
- [ ] fix tests

closes #1161