Cache environments more often

For a faster experience, particularly on the train.

And the caching logic should be hidden - this replaces
`$cachedEnvironments = $this->loadConfig()->environments[$projectId];`
with
`$cachedEnvironments = $this->getEnvironments($project);`