Juju provider for CloudSigma - environinstance (for review)

This pull request is part of juju provider for CloudSigma contaning the following files:
- provider/cloudsigma/environinstance.go
- provider/cloudsigma/environinstance_test.go

Provider for CloudSigma (https://www.cloudsigma.com) uses CloudSigma API v2.0 (https://cloudsigma-docs.readthedocs.org/en/2.10/).

Minimal client for communicating with the CloudSigma Web API from Go program was implemented as separate library https://www.github.com/Altoros/gosigma. This library is published under AGPLv3 license.

It feels like all of the hardware characteristics stuff could be pulled out into a helper so we could do direct tests of it and what happens when we are in various situations (like not "64").
And then the code in StartInstance is just:
return inst, getHardwareCharacteristics(inst), nil, nil

Thinking about it a bit more, given that 'inst' is already a type defined locally, why doesn't inst.hardware() already have the right data. I can see that rootdrive is needed for some of the information, could we change the function to be:

hwch := inst.hardware(rootdrive) ?

I can see an idea that 'inst.hardware' is purely about the information we get from the instance, in which case just a helper function that takes an instance and a rootdrive would still be better than having that inlined into StartInstance.