[Validator] DateRange class validator.

| Q             | A
| ------------- | ---
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | _NA_
| License       | MIT
| Doc PR        | (https://github.com/symfony/symfony-docs/pull/4123)

A validator that checks two `DateTime` values in a class and validates that its a valid range (start date is lesser than/equal to end date)

* [x] 2.3 API
* [x] 2.5 API
* [x] Add `min` and `max` interval constraints

### Use-case

```php

/**
 * @Assert\DateRange(start="startDate", end="endDate")
 */
class Event
{
      /**
       * @var DateTime
       */
      private $startDate;

      /**
       * @var DateTime
       */
      private $endDate;
}
```

This validator asserts that `startDate` and `endDate` must constitute to a valid date-range. This validator ignores if one of them is `null` (add `NotBlank`to the related fields if required)

__Enforce that dates are at least 1 month apart__:

```php
/**
 * @Assert\DateRange(start="startDate", end="endDate", min="1 month")
 */
```

__Enforce that dates can only be 1 week apart or less__:

```php
/**
 * @Assert\DateRange(start="startDate", end="endDate", max="1 week")
 */
```