Better handling of `__file__` when running scripts.

* Set `__file__` when running `ipython filename.ipy`
* Avoid leaking `__file__` back into the main namespace when using `%run`.
Add test for `__file__` behavior in `%run`.
Add test for `__file__` behavior in `ipython <file>`
Merge pull request #2460 from bfroehle/ipy_file_inject

Better handling of `__file__` when running scripts.