unexport the env command EnvName value

This PR finally manages to hide the EnvName from the environment command.

A ConnectionEndpoint function is moved from the juju package, along with the tests.

A ConnectionName method is added with the caveat that the name may be empty.

The EnvironName method on the wrapper was never called, and was confusing, so I removed it.

The manual provisioning still takes a connection name, but it should be changed to take either the config or api end point. This will be addressed in a follow up branch.

The testing of the api end point caching was in the wrong place. It stays in the juju package, but in a different test suite.

Shouldn't we skip all of this if `refresh == true`?