[PROVISIONAL] Isolate data exchange formats

This is some work towards... #1878, #1253 and others.

This moves JSON and XML to the level alongside fog "core" so in future, when the code is split into gems, providers can rely on `fog-core` and `fog-json` without picking up XML requirements like Nokogiri.

Also added a deprecated form of `Fog::Connection` which should (I hope) function as currently - including SAX parsing of chunked responses - as well as a SAX parsing connection and a plain connection.

This is for initial review.

I've not been able to break the mental barrier to work on Shindo tests for it and unfortunately because we mock at the Service `#request` level, most of the code below that is not getting run.

Tests pass with mocks and against a testing instance of Brightbox's API so happy that the NON parsing path hasn't been affected.