Refactor Transaction Proposals

- spawns TxProposal to a new class
- completely rewrite TxProposal and TxProposals tests to be really UNIT tests
- remove metadata from TxProposals. Remove PEER TRUST
- Adds multiple checks to received/read TxProposals:
  - must have a correct redeem script
  - signatures must be valid
  - metadata (signed and creator) is derived from the signature
  
Fixes https://github.com/bitpay/copay/issues/135 
Fixes https://github.com/bitpay/copay/issues/939

Addresses item 1 from (Known issues)[https://github.com/bitpay/copay/wiki/Copay-Known-issues#peer-trust]
what does this mean? is it possible that a peer rejected AND signed a transaction? If we find this case, I would throw an exception, not delete the rejected status. Or is it an expected case?