We should only call run_cell with store_history=True as part of the main user interaction loop (and in the test suite), so this makes the default False.
I've also fixed #865 (following @minrk's suggestion). That meant the tests for %cpaste had to be changed, because errors from pasted code are caught before they reach the test code. We now check that the traceback is printed, although that's a more brittle check.
Change run_cell to not store history by default.
Use run_cell for %paste, instead of plain exec.
Closes gh-865, but introduces test failures for %cpaste
Fix tests for cpaste which no longer get error raised to them.
Less elegant than before, because we now look for the traceback being printed.