Added provider for CloudSigma

Added provider for CloudSigma.

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.

gosigma library is added as dependency to dependencies.tsv file.
Please, see my comment above 8 days ago. Starting from "cmd/jujud/agent.go:
Fixed issue with provisioning non-bootstrap..."

Maybe following logs with my comments will provide more clear picture.

machine-0: 2014-06-11 10:30:58 TRACE juju.provider.cloudsigma environinstance.go:251 Bootstrap script done for machine '1', '31.171.246.213'
// machine-1 is provisioned and jujud agent is just started, issued call to SetInstanceInfo to track new instance in the database

machine-0: 2014-06-11 10:30:58 DEBUG juju.state.apiserver apiserver.go:132 <- [1] machine-0 {"RequestId":127,"Type":"Provisioner","Request":"SetInstanceInfo","Params":{"Machines":[{"Tag":"machine-1","InstanceId":"b4fd262e-0e37-4d68-9746-d467637ccb0a","Nonce":"machine-0:f279f3b7-a6c3-4393-8cee-2d3dac665f48","Characteristics":{"Mem":2048,"RootDisk":2252,"CpuCores":1,"CpuPower":2000},"Networks":null,"Interfaces":null}]}}
// start handling of SetInstanceInfo at machine-0

machine-0: 2014-06-11 10:30:58 INFO juju.state.apiserver apiserver.go:143 [4] API connection from 31.171.246.213:56650
// jujud on machine-1 is up and trying to connect first time

machine-0: 2014-06-11 10:30:58 TRACE juju.rpc.jsoncodec codec.go:107 <- {"RequestId":1,"Type":"Admin","Request":"Login","Params":{"AuthTag":"machine-1","Password":"","Nonce":"machine-0:f279f3b7-a6c3-4393-8cee-2d3dac665f48"}}
// jujud from machine-1 trying to login first time with empty password
 
machine-0: 2014-06-11 10:30:58 TRACE juju.rpc.jsoncodec codec.go:176 -> {"RequestId":1,"Error":"invalid entity name or password","ErrorCode":"unauthorized access","Response":{}}
// failed

machine-0: 2014-06-11 10:30:58 INFO juju.state.apiserver apiserver.go:143 [5] API connection from 31.171.246.213:56651
// second try to login...

machine-0: 2014-06-11 10:30:58 TRACE juju.rpc.jsoncodec codec.go:107 <- {"RequestId":1,"Type":"Admin","Request":"Login","Params":{"AuthTag":"machine-1","Password":"6+khQJ1bcIDMnxCpl81/xY+g","Nonce":"machine-0:f279f3b7-a6c3-4393-8cee-2d3dac665f48"}}
machine-0: 2014-06-11 10:30:58 TRACE juju.rpc.jsoncodec codec.go:176 -> {"RequestId":1,"Error":"machine 1 is not provisioned","ErrorCode":"not provisioned","Response":{}}
// ...with valid password, but machine 1 is not yet tracked as 'provisioned' one, SetInstanceInfo handler is working in parallel just now

machine-0: 2014-06-11 10:30:58 DEBUG juju.state.apiserver apiserver.go:139 -> [1] machine-0 480.803202ms {"RequestId":127,"Response":{"Results":[{"Error":null}]}} Provisioner[""].SetInstanceInfo
machine-0: 2014-06-11 10:30:58 TRACE juju.provider.cloudsigma instance.go:26 sigmaInstance.Id: b4fd262e-0e37-4d68-9746-d467637ccb0a
// now machine 1 is tracked as 'provisoned', but jujud at machine-1 is already erasing itself after two failed login tries

machine-0: 2014-06-11 10:30:58 INFO juju.provisioner provisioner_task.go:486 started machine 1 as instance b4fd262e-0e37-4d68-9746-d467637ccb0a with hardware "cpu-cores=1 cpu-power=2000 mem=2048M root-disk=2252M", networks [], interfaces []
-----------------------------------------

One second sleep at login code of jujud cures this race effectively and simply, as I think. This fix does not touch any current functionality and will not introduce constant delay at jujud login, because is performed only at the time of password change.