Add dict key completion in IPCompleter
Additional test coverage for dict key completion
Containers resolve instances.

When a container has an instance traits, the instance's klass is
properly resolved when given as a string.
First draft of new kernel registry machinery

IPEP 25
Add supporting for making a directory for the native kernel
Better describe functions in kernelspec module
Start refactoring KernelManager to use kernel registry
Miscellaneous fixes to kernelspec system
Expose --kernel arg for selecting kernel on console and qtconsole
Nicer formatting for default kernel files
Allow an arbitrary number of kernel directories to search
Fix writing native kernel spec on Python 2
Rename list_kernel_specs to find_kernel_specs
Remove extra action generation in "All Magics" menu population.

The function that populates "All Magics" and "CLASS magics" menus
used to create two separate QActions: one for the all-menu and one for class
menu. There is no apparent reason for doing that, since single QAction can
happily serve multiple menus and buttons.
Special cased kernel name is 'python', not 'native'
Add mechanism to specify environment variables in kernel spec
Allow IPython directory to be passed down to kernel selection from App

With apologies to @ivanov for creating a new Manager class.
Nicer error message when kernel is not found
Added test
Add support for PyQt5.