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
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
Add simple tests for kernel spec machinery
Merge pull request #5598 from takluyver/kernelspec

Kernel registry (IPEP 25)