Simplify code logic and remove fancy @property handling.

While there's repeated code here, it's easier to understand and, more
importantly working correctly. Now I can add the sanity checks needed
to address the bug.
Sanity checks for create and edit are now in place.

If you try to edit a review and I can't find one associated with your
change, I won't allow it. If you try to create a new review and your
cl is associated with a review, I won't allow it.
Improve, or at least elaborate, the message when a review is not found.
NFC: Ran Pycharm tidy function.