Change EnsureNotBootstrapped to use StateServerInstances

EnsureNotBootstrapped is modified to call StateServerInstances,
rather than LoadState directly. StateServerInstances is now
required to return ErrNotBootstrapped if there are no state
server instances.

The BootstrapState type and related functions have been moved
from environs/bootstrap into provider/common, which is where
it should have been before were it not for the layer violation.
Are we sure the agents directory is guaranteed to be cleaned up on destroy? Is there a possibility it could be left around and there'd be a false result from this method? Maybe we should check for running juju agents?