contract signers and totalSigners variables should be read-only public
contract should check for dupe signatures
paymentTx() should fail or succeed fast
under certain conditions, the paymentTx function will immediately return rather than
spend extra computation/gas on verifying signatures that will not change the success return value
if the length of the v, r and s arrays are < totalSigners, then fail fast, all values in the verified array will be false
if the nth signature is unverified, and it makes the possibility of achieving the
correct number of signatures impossible, then fail fast
all remaining verification values of verified[z] will be false, where z >= n
if the nth signature results in enough verified signatures, then succeed fast
all remaining verification values of verified[z] will be true, where z > n
this change reduced the gas cost of the test case "QuantaCrossChain 7 signers|should fail paymentTx fast with bad sig [native eth]" from 138410 to 107770
makeVRS() javascript helper function should not be async
update ganache documentation to require 8 test accounts