Add an ipython magic for snakeviz.

To use the snakeviz line/cell magics run `%load_ext snakeviz` and then
`%snakeviz` or `%%snakeviz`. Works on actual code (not filenames) in the same
way one would use `%prun` and `%%prun`.

The magic works by wrapping `prun` and saving the profile results to a temporary file, then using `subprocess.Popen` to launch snakeviz via the CLI. The magic then sleeps for 20 seconds (to give time for the page to load) and then terminates the Snakeviz server process. This is to handle the problem that the user has no way to shut down the server process if we just leave it running.