Deadline -- Support for timeouts during computation.

This adds timing around sections of processing without any event calls so that if a timeout is detected the computation can be aborted early with an exception.

This is implemented with an `options` parameter to the `ThreeBSP` constructor which takes a `timeout` options in milliseconds.

This is the maximum amount of time that an operation can be performed in a blocking manner including new node construction, cloning operations and the `subtract` `union` `intersect` and `toMesh` methods.