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.

closes #1161
update `toggle-color` to go through _pry_.color.
update CHANGELOG.md