Correctly set prompt numbers in execute preprocessor

Currently, the execute preprocessor doesn't actually always set the prompt numbers correctly, because it seems that when there is no `pyout` message, they are contained in the `execute_input` message, but the preprocessor essentially ignores this message.

This pull request modifies the tests for the execute preprocessor so that they actually detect when the prompt number isn't being set, and then fixes the problem in the execute preprocessor.