When a contrat had no payment token but the corresponding partner had
one, the transaction was created without an acquirer, leading to an
integrity error in postgres.
This change makes sure the token used to test the ability to pay an
invoice is passed along to the transaction creation call.
Tests were also added to check the ability to use the contract token if
present, but the partner's in the opposite case.
This change fixes#165.