Detach servers (remove from group without removing in Nova)

This adds the "detach" feature to the API.

- I used the term `purge` to mean "also kill the machine in Nova". I started with `delete`, but it seemed really awkward to have a DELETE request that is documented as deleting a server and then has a `delete` query argument...
- I spent a good chunk of time cleaning up the tests and fixing docstrings. It would be useful to give those a close (review) inspection to make sure I didn't screw it up.
Aha. I was looking at `ExtractBoolArgTests`, which does use `Request(DummyChannel(), True)`, but yeah, that's the idea: feed it something that quacks like a real request object, instead of patching out `extract_bool_arg`.

Do you feel like that would be a marked improvement for the code, or are you comfortable with this test as-is?