More concrete explanation of validation groups

| Q             | A
| ------------- | ---
| Doc fix?      | yes
| New docs?     | no
| Applies to    | all
| Fixed tickets | -

Improved the explanation of default validation groups in reference with my discussion with @webmozart in symfony/symfony#11880.
You forgot one case (and you have some very hard to read sentences). I think we can make this the most clear with an example:

**definition**
````php
class Task
{
    /** @Assert\NotBlank */
    protected $description;
    /** @Assert\Type("boolean") */
    protected $isDone = false;
}

class TaskWithPriority extends Task
{
    /** @Assert\Range({min: "0", max: "100"}) */
    protected $priority;
}

class Meeting
{
    /**
     * @Assert\Valid
     *
     * @var Task
     */
    protected $doesTask;
}
````

**set up**
```php
$task = new TaskWithPriority('Fix regression in code');
$meeting = new Meeting();
$meeting->isGoingToFix($task);
```

Now, we validate `$task` with different groups:

| group | used constraints
| --- | ---
| TaskWithPriority | NotBlank ($description), Type ($isDone), Range ($priority)
| Task | NotBlank ($description), Type ($isDone)
| Default | the configured group sequence *or*, if not set, TaskWithPriority
| Strict | Length ($description)

And when we validate `$meeting` with different groups:

| group | used constraints
| --- | ---
| Meeting | Valid ($doesTask) (and thus: NotBlank ($description), Type ($isDone), Range ($priority))
| Default | the configured group sequence *or*, if not set, Meeting
| Strict | none