support notebooks in %run

Simple enough - just generalized safe_exec_ipy a bit to support a sequence of cells rather than just one cell (the .ipy behavior).

I think we have an issue open for this, but I can't seem to find it.
make %run magic complete on .ipynb files
add a few tests for %run

including running notebook