Make it possible for AST transformers to reject input.

Makes it possible for user-supplied AST transformers to reject input by raising a new `InputRejected` exception, which resides in `IPython.lib.security` (not sure if this is the right place for the exception to live, but somewhere in `IPython.lib` seemed correct, and the primary motivation for adding this functionality is to facilitate the possibility of AST-based sandboxing.)

The PR also includes a minor whitespace cleanup in the touched files, as well as a pseudo-bugfix for a misleading test in `test_interactiveshell`.  I'm happy to rebase out either of those pieces if there's a desire to restrict PRs to just a single functional change.
Sorry, can I ask you to make the commits again, and configure your editor not to strip trailing whitespace? Big whitespace changes are an annoyance for review, create unnecessary merge conflicts, and mess up git blame.