Bug 1580178 - Allow hit-testing without synchronous messaging. r=boto…
…nd,kats This patch adds an asynchronous hit tester that can perform hit testing queries without blocking on a synchronous message to the render backend thread, which is often busy building frames. This is done by having a shared immutable hit tester readable by any thread, atomically swapped each time the render backend processes a new scene or frame. In order to asynchronously hit test without causing race conditions with APZ intenral state, the hit tester has to be built while the APZ lock is held. Differential Revision: https://phabricator.services.mozilla.com/D45345 [ghsync] From https://hg.mozilla.org/mozilla-central/rev/ed2d1ba57e2f0cb9072af5c6e9ef17a9bbdc18a0