Set calling program to the empty string, when argv not in sys

It might happen, then the sys module has no argv, when embeding IPython
into other programs with IPython.embed(). In that case, just set the
calling program to "" or other logic in IPython will crash - for
instance when checking for command line arguments.
comment reflects when the case below it can occur
Merge pull request #3632 from ivanov/no_sys_available

Set calling program to UNKNOWN, when argv not in sys (take #2)