Since embedders only care about isJS() vs isEmbedder() we begin to
be able to carve out space for engine specialization.
The current patch allocates a range of 16 as I believe that will be sufficient
for the final state.
This commit also forces EnqueueJob callers to declare the kind of job, which
is preparation for alternative task shapes