[feat] use bonafide Provider object as a singleton
There was common situations where two provider instances where running in parallel. And was creating weird errors (like getting wrong api_uri) because the bootstrap deferreds were global but the Provider objects not.
I don't like much singletons, but I think now is simpler than before.
- Resolves: #9073 (closed)