Introduce AddressCollection class

I think that this could be interesting since we always return a set of results rather than only one result. Moreover, having a class rather than relying on the `array` primitive type seems a bit more robust, and makes the API more fluent:

    // Before:
    $addresses = $geocoder->geocode('foobar');
    $address   = empty($addresses) ? null : reset($addresses);

    // After:
    $address = $geocoder->geocode('foobar')->first();

WDYT?
Should we return null here? IIRC we can't get 0 results as it would lead to a `NoResult` exception earlier in the execution flow.