this should address the failure in #2732

i am still very concerned that I can't test this on windows - I'm not used to developing for windows, so not sure that these links will work even if the test passes on windows.

is there a good AWS AMI to use for windows testing? i can run this in my own AWS account.
complete builtin and cython with embededsignature=True
by parsing first line of docstring
docstring for _default_arguments_from_docstring
more robust docstring parsing and docstring parser test

now it can parse cython method like
Minuit.migrad(self, int ncall=10000, resume=True, int nsplit=1)\n
__call__ should not use class docstring
cache regexp and PEP8
couple more PEP8 in test
_default_arguments_from_docstring docstring style
couple typo in docstring
use splitlines instead of StringIO.readline and rebase
tweak history prefix search (up/^p) in qtconsole

moving the cursor around the line could result in
weird inconsistencies in the prefix.

This simplifies the logic by always using the cursor position
to set the history prefix,
and better determine when the history prefix has actually changed.
fix typo in qtconsole history_next

while condition was always checking initial value,
rather than the iterating value.
avoid string version comparisons in external.qt

We have learned from pyzmq that one should *always* parse version strings before comparing them.
mention Jinja in install docs
add jinja to optional dependencies in setup.py
utils.localinterfaces: Uniquify LOCAL_IPS

On my Python 3.2.3 system, I get:

  >>> socket.gethostbyname_ex('localhost')
  ('localhost', [], ['127.0.0.1', '127.0.0.1'])

After de-duplicating, LOCAL_IPS[1] (if it exists) will be a non-local
IP address that might be useful to a remote host (it might also be
'0.0.0.0', but I'll worry about that later).
utils.data: Use list comprehension for uniq_stable()

This should be faster than and explicit for loop.  Also, a set makes
more sense than a dict if we only care about values.  After these
changes, the resulting code is the same as Dave Kirby's uniqify()
suggestion on Peter Bengtsson's blog [1].

[1]: http://www.peterbe.com/plog/uniqifiers-benchmark
utils.localinterfaces: Add PUBLIC_IPS to consolidate socket logic

Consolidating IP detection in this module will let us remove
socket.gethostbyname_ex calls from other modules and ensure that
everyone agrees on what our public IPs should be.
parallel.apps.ipcontrollerapp: Use utils.localinterfaces

... for LOCALHOST and PUBLIC_IPS, rather than duplicating the socket
incantation and hard-coding 127.0.0.1.
frontend.html.notebook: Use utils.localinterfaces.LOCALHOST