Clients

WIP for rest api client classes.

Depends on api branch, which should be merged first to make this a much smaller diff.

Submitted now for early draft feedback.

TODOs: finish tests, docs (especially docstrings)