Add purging of client result cache to parallel.Client

The new methods clear the cached values and free some memory.

The whole thing is split into different methods to both clear the
client and the hub side.

Additionally fix some bugs in other parts of the code.
Add Testcases for new purging methods in parallel.Client

Signed-off-by: Jan Schulz <jasc@gmx.net>
Optimise a check for empty jobs/target lists

If the inputs are empty, no msg_ids should be returned. So change the
test to not only check for None but also for empty lists.

Signed-off-by: Jan Schulz <jasc@gmx.net>
log user tracebacks in the kernel (INFO-level)
try to fallback to pysqlite2.dbapi2 as sqlite3

for situations where Python is built without sqlite3 and
can not easily be changed, it would be nice to still be
able to get history with pysqlite2.
Add shell_futures parameter to run_cell to allow running code without sharing __future__ imports.
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.
Remove outdated code from extensions.autoreload.

imp.getsuffixes() raises a DeprecationWarning under Python 3.3;
in order to fix this I just removed _get_compiled_ext and
PY_COMPILED_EXT because they are no longer used
(see 8a8884b399cf3f5b761313bf0d446ba204f2c810
and 2911f3ed7db45ec2571772a9e25513559d480179).
Allow caller of MultiKernelManager.start_kernel to pass kernel_id.
General cleanup of kernelmanger.MultiKernelManager.
Removing return value of restart_kernel.

The kernel_id is *always* the same under a restart and there
is no need to return it. The restart handler does pass
the original kernel_id back to the browser as it currently uses it.
Creating application.config attribute.

This creates less coupling between the handlers and the outer
IPython application.
Refactoring kernel_died method to make subclass friendly.
Adding tested ipc support to MultiKernelManager.
Fixing bug in connection file cleanup.

ipc files were not always being removed.
Adding calls to shell_channel.stop() to shutdown.

But this hangs the test suite for IPython.frontend.html.notebook.
Fixing bug in cleanup of ipc files and adding new to shutdown.

* ipc files were not being cleanup on a restart.
* shutdown has a now argument that will call kill directly.
Cleanup naming and organization of channels.

* Change remaining use of "sub" to "iopub".
* Use consistent naming of channel classes across zmq, inprocess
  and qt.
* Move BlockingChannelMixin to zmq.blockingkernelmanager.
Creating an ABC for kernel managers and channels.
Make InProcessKernelManager a Configurable.