Merge pull request #1395 from takluyver/xunit-kf

Make Xunit count KnownFailure tests as skipped, not failures.
fix symlinked /home issue for FreeBSD

this is a one-line fix for ipython's pushd and friends on systems which
symlink /home directories to /usr/home. Here's the error I get on
FreeBSD 9.0 without this PR:

======================================================================
FAIL: Test various directory handling operations.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/usr/home/pi/code/ipython/IPython/core/tests/test_magic.py", line 280, in test_dirops
    nt.assert_equal(curpath(), startdir)
AssertionError: u'/usr/home/pi/.ipython' != u'/usr/home/pi/code/ipython'
- /usr/home/pi/.ipython
?              ^
+ /usr/home/pi/code/ipython
?              ^^^^^

    """Fail immediately, with the given message."""
>>  raise self.failureException(u"u'/usr/home/pi/.ipython' != u'/usr/home/pi/code/ipython'\n- /usr/home/pi/.ipython\n?              ^\n+ /usr/home/pi/code/ipython\n?              ^^^^^\n")

-------------------- >> begin captured stdout << ---------------------
/usr/home/pi/.ipython
/usr/home/pi/code/ipython
/usr/home/pi/.ipython
[Errno 2] No such file or directory: '/usr~/code/ipython'
/usr/home/pi/.ipython
popd -> /usr~/code/ipython

--------------------- >> end captured stdout << ----------------------

The reason for the above is this:

In [1]: pwd
Out[1]: u'/usr/home/pi'

In [2]: !pwd
/home/pi

In [3]: pushd code
/usr/home/pi/code
Out[3]: [u'/usr~']

with this commit:

In [1]: pushd
Out[1]: [u'~']
Only monkeypatch xunit when the tests are run using it.
Merge pull request #1405 from takluyver/xunit-monkeypatch-on-request

Only monkeypatch xunit when the tests are run using it.

Sidesteps weird issues seen on Ubuntu buildbots.
document how to select browser for notebook
added --browser option to notebook

now you can specify --browser=firefox when starting ipython notebook
be more explicit about how --browser value is used
Create a shell application controller using direct Win32 API
Merge pull request #1402 from ivanov/homedir-symlink-fix

fix symlinked /home issue (e.g. for FreeBSD)

fixes assumption that `~` follows no symlinks in pushd and friends.
Add javascript library and css stylesheet loading to JS class.
Minor cleanup of Javascript display code.y
Merge pull request #1377 from takluyver/i1375

Non ascii history caused problems for the %hist command with the -f option to save to file. This adds a test and fixes it using io.open.

closes #1375
get_home_dir expands symlinks, adjust test accordingly
ignore errors in shell.var_expand

If an error is raised in the formatter, leave it untransformed.  This means that var_expand("$foo") will return "$foo" if `foo` is undefined, but more importantly it will *not* raise when var_expand is used on literal code that doesn't expect to be expanded (e.g. %prun arguments).

Tests included.
Merge pull request #1406 from ivanov/browser-selection

adds new `NotebookApp.browser` configurable and corresponding `--browser` alias for specifying which browser should be launched with the notebook landing page.
Merge pull request #1385 from ivanov/magic-docs

updated and prettified magic doc strings
avoid ctypes import in parentpoller when unnecessary
Add %install_ext magic function.
fix inverted self.browser logic
Tweak out the process controller class so it works interactively better

In the IPython shell launched from the console, it works pretty well now.
From the qt-console, not so much.