Initial implementation of the swift backend

So, there's a few TODOs left:

- [x] implement the `NotImplementedError` functions
- [x] remove hardcoding for rackspace
- [ ] tests
- [ ] integration tests

Before I finish it up, a few questions:

- `do_lzop_get` seems to have a lot of logic duplicated between `wabs` and `s3`, how can we improve this?
- Is there any documentation between the backend contracts? I can't figure out where the `key` in `write_and_return_error` comes from.
- OpenStack has a few more parameters than other backends (e.g. `authurl`), how should we pass those?
- What's the right testing strategy, I don't want to duplicate the tests again, is there some way we can have tests which run against all backends?
- Other questions I haven't thought of!