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.
Haven't read the code recently. At some future point we should merge in the information about the start/end times for the claim itself, so maybe leave them nil?