Improve test coverage

I also removed some crud:

+ InvoiceID passed to transaction.payment() didn't work

+ Hacky humanistic Amount conversion in transaction.payment() (/\d+[A-Z]{3}$/)

+ transaction.transactionManager() was a getter for the transaction's TransactionManager. Not used or documented

+ Request.setServer wasn't working with hostname, now using URL to select server