Add Request objects

This PR adds a Suretax::Api::Request class that can be used to create request objects that can be passed into Suretax::Connection#post via Request#params. 

It also adds (mostly accurate) validations for the various data methods in Request, so you can ask request.valid? before posting request content to the API server.