[FEAT] Filter properties using groups
## Information

**Is your feature request related to a problem? Please describe.**

Ts.ED provide a way to filter some properties of a Model based on a groups strategy. But this solution is statics and use the `@Groups` annotation to define the  mapped models.

The feature should accept a query params to get the group key and use it to map the model to the expected output.

For a security reason, the allow groups from the field must be declared to avoid undesired side effect (like sensitive properties displayed with appropriate right).

**Describe the solution you'd like**

```ts
class MyModel {
  @Property()
   id: string;

  @Property()
  description: string;
  
  @Groups("summary")
  prop1: string;  // not display by default

  @Groups("details")
  prop2: string;  // not display by default

  @Groups("admin")
  sensitiveProp: string; // not displayed because it's a sensitive props
}

@Controller("/controllers")
class MyController {
 
  @Get("/:id")
  @Returns(200, MyModel).Groups("!admin").AllowedGroups("summary", "details")
  get() {
     return { 
        id: "id",
        description: "description",
        prop1: "prop1",
        prop2: "prop2",
        sensitiveProp: "sensitiveProp"
     }
  }
} 
```

#### Default usecase

Request:

```
GET http://host/rest/controllers/1
```

Expected json:

```json
 { 
    "id": "id",
    "description": "description"
 }
```

#### With groups

Request:
```
GET http://host/rest/controllers/1?includes=summary
```

Expected json:

```json
 { 
    "id": "id",
    "description": "description",
    "prop1": "prop1"
 }
```

#### Multi Groups

Request:

```
GET http://host/rest/controllers/1?includes=summary&includes=details
```

Expected json:

```json
 { 
    "id": "id",
    "description": "description",
    "prop1": "prop1",
    "prop2": "prop2"
 }
```

#### Unexpected groups

Request:

```
GET http://host/rest/controllers/1?includes=admin
```

Should not affect the response.


## Acceptance criteria

- [ ] The payload is mapped from the given `includes` query params
- [ ] The Swagger UI display the list of allowed groups
- [ ] The Swagger UI display the different models for each groups (combinaison between groups isn't necessary)
- [ ] The API should ignore a group not included in the AllowedGroups
