Improve tx proposal protocol security

This PR adds checks to txp exchange protocol so that it doesn't accept changes to txp metadata (seen, rejected, signed) that don't come from the copayer reporting the action. Updates tests to take this into account. 

Depends on https://github.com/bitpay/copay/pull/696 being merged first
fixes https://github.com/bitpay/copay/issues/135 (finally!)
Preconditions looks pretty cool... it does a better job of what I was trying to accomplish with the API a couple of months ago. This will be handy for when actually finish implementing the API.