Prevent construction of internal types

The user should no be able to construct types like `Pro` and `Storage`
manually.  Instead, they should always use the `connect` functions.

