Ensure only valid claims can be completed

In investigating #87 I noticed that there was no validation that a claim existed and was valid when it was completed.

I have asked some questions in #90 to clarify what the intended behavior is, but I believe that it shouldn't be possible to complete a claim that is not currently valid.
Once a client sends a completion message for a claim, side effects for that task will have already completed; we can't gain correctness by refusing the request at that point. I think the right thing to do is to *create* a claim and accept the completion here. Otherwise we sacrifice associativity, and it's not a CRDT.