Fixed transaction initialization arguments to be optional

Add this moment you cannot instantiate a `Braintree_Transaction` object without giving it all the attributes - which aren't needed if I just want to use the `sale` function in an object oriented way instead of calling statics which are hard to test and mock.