Stop saving audit model without any info

Things can get messy if the audit model is created (to get a pk for the
vendor_tx_code) but then the process crashes. This change ensures that
audit models are only created once we have something interesting to
store in them.

It requires some fiddling with the mocks to ensure the database isn't
used.
Fix external tests

The API had changed since these were last passing.
Use private file for private settings in tests
Adjust refund API to take AUTHORISE txn

It doesn't make sense to take the AUTHENTICATE as it can be authorised
in several steps. This change also makes the gateway APIs more
consistent by stopping using price objects for the authenticate call.
Update the README
Add initial migrations