[core] Move XML/JSON code up out of core

Rather than embedding XML and JSON support within fog-core, this is the
start of extracting them to exist alongside core.

That will move the responsibility to each provider to declare if they want
XML or JSON services.

Goal being as we move towards a modular fog this allows providers to
require core and either JSON or XML gems and not pick up dependencies
only required by the other.
[core] Fog::Connection documentation
[core/xml] Splits SAX parsing from Connection

This creates a new `Fog::Core::Connection` class that wraps around HTTP
connections/requests but does not presume SAX parsing of the API response.

A new `Fog::XML::SAXParserConnection` is available which implements the
original behaviour with a clearer interface.

`Fog::Connection` subclasses `SAXParserConnection` to be backwards
compatible.

Further testing and deprecation warnings are needed.

Since mock testing occurs at a higher level the changed code is not
exercised by the tests and I do not have access to an XML based API to
debug quickly with.
[core] Adds initial Fog::Connection tests

Basic tests to ensure `Fog::Connection` is tested based on it's current
interface.
[core] Test Core version not deprecated one

Should have tested Fog::Core::Connection since Fog::Connection is the
backwards compatible one.

Also adds a bit more documentation.
Merge pull request #1886 from fog/isolate_data_exchange_formats

Separate XML from Fog::Core::Connection