trigger `Kernel.status_started` after websockets open

This leads to a more logical state for event watchers to expect.
remove special handling of speaker notes
clarify `reveal-prefix` alias name
update nbconvert docs about reveal.js
add proxying tornado server in Serve post-processor
use local reveal.js url prefix by default

CDN redirect is handled by the Serve post-processor if necessary
ESC should be handled by CM if tooltip is not on
Have remove_and_cancel_tooltip() return a boolean
append Firefox overflow-x fix
add Cell.is_mergeable method

and check it in the Notebook merge methods
HeadingCells are not splittable or mergeable

closes #4200
Merge pull request #4079 from minrk/status_started

trigger `Kernel.status_started` after websockets open
protect against unavailable tornado in post_processors.init
update reveal docs with recent changes
add nbconvert serve exclusions without tornado
install tornado in travis
Merge pull request #4048 from minrk/finish-notes

finish up speaker-notes PR

This removes the special handling of speaker notes, simply informing the user that speaker notes require local require.js.

It also renames the alias name for reveal.js url prefix to something more descriptive (reveal-prefix).
Merge pull request #4201 from minrk/no-merge-heading

HeadingCells cannot be split or merged

closes #4200
remove some extraneous print statements from IPython.parallel

closes #4203

backport for 1.2
use TextIOWrapper when communicating with pandoc subprocess

uses 'universal-newline' mode, to avoid confusion with CRLF.

closes #4122