Fix EZP-22999: XmlText and RichText do not implement FieldStorage::deleteFieldData()

This PR resolves issue https://jira.ez.no/browse/EZP-22999

This implements `FieldStorage::deleteFieldData()` method for XmlText and RichText.
As these use Url external storage, gateways for Url, XmlText and RichText field types are refactored so that Url gateway is reused. For XmlText and RichText this means their gateways now aggregate Url gateway and implement its methods by decorating it.

With this, duplicate Url storage related code and tests in XmlText and RichText are removed.

### Additional
* fixed instantiating RichText converter in SPI field type tests
* Url storage now logs an error when URL can't be loaded
* various minor cleanups
```php
if ( empty( $ids ) )
    return $map;

$q = // ...
```