support buffers in comm messages

- add buffers arg to comm Python api
- support binary websocket messages when buffers are present
- reimplement utf8 in javascript, because javascript is the best
s/unserialize/deserialize
use utf8.js

move message serialization to kernel.serialize module
support binary message from javascript
use TextEncoding for string<->ArrayBuffer

requires text-encoding js polyfill, for now
install text-encoding polyfill
test websocket-friendly binary message roundtrip

Python-side
include buffers when resending message

in zmq.session
test binary websocket messages

only runs on slimerjs for now
unsigned ints for offsets

because signed ints for sizes is icky
move binary msg test to services/serialize
update components to master

text-encoding has been merged
Add pygments_lexer key to kernelspec
Use kernelspec metadata for higlighting in nbconvert

Closes gh-6619
Deprecate NbConvertBase.default_language config option
Add failing test for issue #6724
Fix markdown rendering with inline maths

The mistune 'text' regex was capturing into math expressions in some
cases. The fix was to modify it to stop at a $ sign, giving the inline
math regex a chance to capture that.

Closes gh-6724
Wording change as suggested by @minrk
Fix attribute name
Fallback to plain text if higlighting lexer not found.