Don't use fork to start the notebook in js tests

It can encounter a weird segfault on OS X with sqlite when Qt is present (?!)

The main reason to use the fork was to get the port number, but this is easy now that notebooks write a server-info file.

Further advantage is that the symptom of a failed server start is no longer silence and hanging tests, but an actual failure with the server's log output.

This will need to be rebased after #5326 is merged