make hiding of initial namespace optional

It is by design that names loaded by startup files, etc. are hidden from things like `%who`.

But this behavior is pretty surprising, especially since

    ipython -i script.py

and

    %run -i script.py

have different behaviors with respect to the hidden namespace.

Since the current behavior was added at the request of @fperez, I left the default behavior unchanged, but added a flag to disable hiding initial variables.