state: NewEnvironment now provides an initialized environment

NewEnvironment used to just add an entry to the environments
collection. Now all required initialisation is performed so that the
returned environment is ready to use. This has required a signficant
change to the the method's signature.
state: use jc.IsNil throughout EnvironSuite