Updating the message spec (finish IPEP 13, 24)

I will implement IPEP 24 here as well, once some discussion has happened there.

closes #854
closes #2825
closes #2826

Main changes:

- pyout -> execute_result (no effect on nbformat)
- pyerr -> error (same)
- pyin -> execute_input
- remove user_variables (redundant with user_expressions)
- user_expressions is mime-bundle
- kernel_info versions are strings
- add banner to kernel_info
- add version string to message headers
- support getpass in input_request messages
- lex kernel-side in complete/object_info requests
- object_info_reply is mime-bundle
- pager is mime-bundle
- completions may include extra info

I plan to add a shim for translating between msg spec 4.1 and 5.0, but I will do that after this PR is finalized, so I'm not writing a translation against a moving target.