Even-more-improved JSServer

JSRunner is now 'subclassable'.
JSServer is now just a thin wrapper around it that manages the
parallelism without knowing anything about Otto, and has a factory
function that allows it to use a 'subclass' of JSRunner.
This is all to fix a nasty race condition in the Sync Gateway.