Created client. Implemented post a job and request some work. Lots of tests

Split up the contracts table so we can make as many requests as
possible simple idempotent puts.

Added operation type to idempotent put. We could use URL, but there's
an edge case where different urls map to the same operation, or url
schemes change.