Change from single provider to chain provider

The ChainProvider is by far the most useful. This PR changes the package default to use it, with FreeGeoIpProvider as the default single member of the chain. Client code can then add additional providers just by adding to the providers config array.

Tests are updated accordingly. Because ChainProvider::$providers is protected, I had to add a test method to grab it with ReflectionClass. This feels a little wrong, but I didn't see a better place to put it in your existing test setup. Let me know if this should be revised.