Add configuration for core providers to expose the provider interface.

This change causes rtcpeerconnection to close its instance if its constructor fails.
It more generally exposes the ```close()``` and ```onClose()``` methods to support full lifecycle access to core providers which are coded in the ```unprivilegedPromise``` style. For this, they give up the ability to be able to manipulate the freedom.js module that has requested them - they're essentially at the level of a normal provider except they don't ```providePromises``` but rather have that happen implicitly and are passed the provider which has done it to them at construction time.
https://github.com/freedomjs/freedom/pull/164/files#diff-e1d62d8c4965edf0e532dfa19da0891fR52