Fix an occasional problem with the new CodeMirror optimizations.

We were throttling how often the 'change' event handler for CodeMirror
was getting invoked. However, this meant that there was a window of time
where CodeMirror could be closed/destroyed before the 'change' event
handler was called.

We now check for this and bail if CodeMirror is no longer with us.

Reviewed at https://reviews.reviewboard.org/r/6439/
Fix JavaScript unit tests for 2.0.x.

A lot of the optimizations made resulted in broken unit tests, due to
various tests not accounting for throttled results.

We now optimistically disable throttling where possible (for cases where
the _.throttle call isn't part of the object's prototype) and do proper
async testing in the other cases.

Reviewed at https://reviews.reviewboard.org/r/6443/
Merge branch 'release-2.0.x'