Make Provider extends Geocoder
Convert all providers as @MattKetmo suggested
Refactor providers (part 1)

This PR is based on @MattKetmo's work. His initial idea was a sort of
eye-opener to me, hence this PR.

I removed useless methods in the AbstractProvider. I believe we could
have a AbstractLocaleAwareProvider too. The LocaleAwareProvider
interface does not make much sense at this point, I'd drop it.

The ProviderBasedGeocoder should be an aggregator or proxy.

The codebase is getting more and more readable and clean.

Edit: I chose to keep the LocaleAwareProvider interface as it is a
pretty common use case.
Merge pull request #359 from geocoder-php/issue-357

[WIP] Extend #357
Minor fixes on TimedGeocoder
Fix reverse() method in ArcGISOnline, Geonames, TomTom providers
Fix getLocalhostDefaults() results
Fix test http layer
Fix TimeGeocoder (implement missing methods)
Fix a bunch of tests
Weird string manipulation
Fix a bunch of tests
fix providers
fix provider tests
fix phpdoc
update test methods names
Merge pull request #365 from pyrech/fix-failing-tests

[WIP] Fix failing tests
Fix string formatting
Fix #367
Introduce AbstractHttpProvider

Fix #359