Adds client side code evaluation.
Fixes code execution.

If we allow multiple postMessage calls to the same worker in the future,
this would've led to overwritten code.
spawn() now correctly uses webworkers.

This means the execution of the callback is done in another thread now.