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
Allow validator to be called from reads_json and writes_json
Remove if __name__ == '__main__' code from validator
Clean up validator, and rename nbvalidate to validate
Special cased kernel name is 'python', not 'native'
Add comments inside validator
Remove unused convert function from validator
Use /notebook as root key
Update nbformat v3 json schema so example notebooks pass
Add isvalid function which returns True/False
Use logging rather than print statements