Added pre/post-run callbacks. Updated requirements to have IPython >= 2.0