Refactor core action to return a parser instance based on the response body

What are we talking about now?  Let's take a step back and focus on what we're trying to achieve.

Different libraries have different http response objects.  For example:

https://github.com/excon/excon/blob/master/lib/excon/response.rb
https://github.com/savonrb/savon/blob/master/lib/savon/response.rb

The way Conduit works today, if you use the Action class, it will return whatever object Connection returns.  This is not ideal because other libraries do not know what to expect.  An example of this is in conduit-rails:

https://github.com/conduit/conduit-rails/blob/master/app/models/conduit/request.rb#L48

All we're trying to achieve here is to ensure that response.body in the code above will always work, regardless of whether we replace out the connection layer.

@codezomb Do you have any suggestions on how to achieve that other than what @arvanasse has provided here already?