__future__ environments

So far, this just closes the .ipy hole, so .py and .ipy files have the same behaviour with respect to __future__, both for %run and as startup files.

There was some discussion on the mailing list about whether `%run` should share the shell's `__future__`, or only `%run -i`. Either way, this will need a bit more thought, because it interacts with the other options that can be passed to `%run`, especially for profiling and debugging.

`%rerun` and macros will share the shell's futures - I think this is expected.