Move history pushing before command execution

This separates out concerns a little better, and paves the way for
extracing process_command from retreive_line.
Move handling logic out of retrieve_line

retrieve_line will no longer modify eval_string, w00!
Ensure running commands in multiline exprs works
Shove everything into r()
Push catches down into re()
Reset @suppress_output each time through the loop
Manage binding_stack in r() too!
Don't print a newline at EOF unless interactive
Fix failures in pry_defaults_spec
Remove extra newline from output specs [Fixes #34]
Stop using rep in pry_spec.rb
Don't replace by empty string
Remove trailing newline from more specs
expose an API so that we can test input stacks

This is hopefully temporary...
Fix failures in command_integration_spec
replicate error handler for commands
Uglier, more working impl of #interactive?
Write lines from InputTester into history

Separate the check for whether to print a newline at EOF from the
check for whether to write input into the history, by inlining the
former.
Replace r_body with accept_line
Make target state downstream of r()