Simplify InputSplitter by stripping out input_mode distinction
Allow IPythonInputSplitter to accept cell magics containing blank lines
Separate InteractiveShell.input_splitter into two instances.

* input_splitter is used to detect when a cell is complete
* input_transformer_manager transforms completed cells

Closes gh-3178
Fix test failure in IPython.lib
Merge pull request #3203 from takluyver/cell-magics-wholecell

Separate InputSplitter for transforming whole cells

This allows cell magics to include blank lines once again (closes #3178).

InteractiveShell now has two input splitters:

- `input_splitter` is used to determine when a block of input is complete, so you can use a cell magic in the terminal by leaving a blank line at the end.
- `input_transformer_manager` is used to transform whole cells, so cell magics affect the whole of their cell.

I removed the similar concept of 'input modes' for InputSplitter, because it was bound to get conflated, and it made the code rather hard to follow.