Implement a Java task scheduler which delegates to the native scheduler when loaded

The task scheduler is usable before native is loaded although only a subset the full native
task prioritisation will be available. After native libraries are loaded, all remaining tasks
will be migrated to native queues.

Design Doc: https://docs.google.com/document/d/1ZRXRypVluu7YvnB9MC73J3Z9NTsYDDxkhUDK4O-siJg/edit?ts=5bb5f398#heading=h.8n30tv8r1tun
And https://docs.google.com/document/d/1z1BDq9vzcEpkhN9LSPF5XMnZ0kLJ8mWWkNAi4OI7cos/edit#heading=h.7nki9mck5t64

Bug: 863341, 872372
Change-Id: I1c71a670662065d1d84cb23493f4cde53db9ae7c
Reviewed-on: https://chromium-review.googlesource.com/c/1268021
Commit-Queue: Alex Clarke <alexclarke@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Reviewed-by: Sami Kyöstilä <skyostil@chromium.org>
Reviewed-by: Sam Maier <smaier@chromium.org>
Reviewed-by: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602319}
34 files changed