Bug 1078520 - python client

Implement a python client.  Note to reviewers, there were a couple fairly substantial changes to the way the module in the latest commits.  It's probably best to only really look at the most recent code.
This should be:
```python
import taskcluster
index = taskcluster.Index({
  'credentials': {
    'clientId': "...",
    'accessToken': "...."
  }
})
```

And not `import taskcluster.client`; also there is the whole issue with config being mutable... This is bad, very bad...