Use a SharedWorker instead of dedicated worker.

We also setup a MessageChannel for debug messages from the worker.