Throw DataCloneError from worker postMessage if structured clone fails

This fixes #3248.
auto merge of #3693 : ehsan/servo/3248, r=jdm

This fixes #3248.

r? @jdm.  Please review for mistakes mercilessly!  Also, I got a host of test failures when running the worker tests, not sure if these tests are expected to pass locally or not.