Instead of rolling back Readline::HISTORY, back it up and restore it.
Make sure to restore Readline::HISTORY.
Raise an ArgumentError if no block is given.
Added more specs for REPL#initialize.
Catch when Readline.readline returns nil or raises Interrupt.