Refactored authorize method to handle tips correctly

Backend runs
```
@gateway.authorize('stored-value-code-here', 5.00, true-or-false)
``` 

This causes an error when we post to valutec, because they don't like a value of false in the tip amount. This fixes that issue, and also an issue with parsing refund responses.