Fix test with multiple web workers in the same environment
Better use of promises with requests.

- Request handlers are not passed a resolver: instead they may return values or
  promises.  It is an EXPERIMENTAL API but they may also throw errors directly
  to indicate unhandled requests.

- `Oasis.connect` triggers an error callback if the initialization message does
  not include the requested capability.  There is one for each corresponding
  API:

  - a third argument, an error callback, can be passed
  - consumers' error functions are invoked
  - if the single string arg API is used, the returned promise will reject.

Fix #14 #16
Pass along the stack trace for rejected requests.

Do this only when the rejection value is `instanceof Error`.