log refusal to serve hidden files dirs
Creating new base/js/keyboard.js
Adding utility functions.
Adding basic tests for keyboard.js
Fixing references to IPython.keycodes.
Removing old keyboard handling from IPython.utils.
Addressing things in completer.js.
Missing class def for TimeoutError.
Merge pull request #5241 from takluyver/utils-test-coverage1

Add some tests for utils
normalize unicode in notebook API tests

was failing comparison on OS X
Adding comment about this fix.
Merge pull request #5076 from ellisonbg/keyboard

Refactor keyboard handling
Merge pull request #5267 from minrk/normalize-paths

normalize unicode in notebook API tests
Merge pull request #5265 from ellisonbg/timeout-error

Missing class def for TimeoutError
fix test suite

is_hidden expects the file to actually exist, so I've rearranged the
logic such that is_hidden is called only after it's clear that the file
exists.
Adding security.js with 1st attempt at is_safe.
Don't render insecure Markdown and show warning.
Display safe HTML+SVG even if untrusted, but don't set trusted=1.
Adding first round of security tests of is_safe.
use google-caja for sanitization