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.