Resource base class refactor to DRY things up

I found that the base class was repeating itself multiple times, so I thought i'd refactor it. I am going to take a better look at the rest of the gem some time next week, as I am shocked at the coding standards in this gem and the lack of tests for such an important thing as processing payments.