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]
Just a comment, no need to change it. This is a good use case for `preconditions.checkState`:
```
preconditions.checkState(!this.signedBy[copayerId], 'Can not reject a signed TX');
```