Allow interceptors and observers to be unregistered.

This is the minimum amount of code to allow interceptors and observers to be unregistered.

Optionally, this patch allows me to get rid of `InterceptorAgent.intercept = true` in the tests. These seem to be just for testing purposes, and we should probably use the unregister functionality to unregister them, instead of this artifact. Agreed?

Fixes #703 and #704