Skip test_examples if IPython>=1.0 not available

Previously this would just fail. Now, we skip example testing if IPython is not installed, or a version < 1.0 is installed.

Note that the additional monkey patching of `_pytest.capture.DontReadFromInput` is due to a bug in how pytest and IPython 0.12.1 interact. They both change sys.stdin, in incompatible ways. Adding these two functions allows them to coexist long enough for us to detect that an old version of IPython is installed so we can skip the tests successfully.

Note that it would also be possible to mark these as "expected failures" rather than just skipping them. Any thoughts on whether expected fails are preferable? I figure skipping is okay, as people are likely to run into failures outside of test_examples if they're changing things outside of the tests.
What do these lines do?