[Feat] Allow the use of Socket.IO Dynamic Namespaces
<!-- 

/!\ IMPORTANT

- All request features / PR are welcome!
- Please take a time to fill the story correctly
- The Ts.ED team will work on the requested feature if:
    - The community vote massively for it.
    - The you are a premium sponsors (individual or company sponsors).
--> 


## Information

**Is your feature request related to a problem? Please describe.**
For an application I'm writing, I require the use of dynamic namespaces in Socket.IO (e.g. `/application-<uuid>`) to mount certain methods to. (e.g. `/application-<uuid>::loadApplication`)

As it stands now, I don't see an option to template `@Nsp()` for this purpose.

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

Ts.ED should allow me to use [Dynamic Namespaces](https://socket.io/docs/v4/namespaces/#dynamic-namespaces) using a RegExp object instead of a string in `@SocketService(namespace)` and `@Nsp(namespace)`.

```ts
@SocketService(/application-(.+)/)
class MySocketService {
    @Nsp
    currentNamespace: SocketIO.Namespace;

    @Nsp(/some-other-dynamic-(.+)/)
    otherDynamicNamespace: SocketIO.Namespace;
}
```

As a sidenote:
I already tried casting the regex `as unknown as string`, but `@tsed/logger` was giving me a SERVER_BOOTSTRAP_ERROR
<details>
  <summary>Sidenote error</summary>
  <pre>
  [2022-08-28T12:54:38.362] [ERROR] [TSED] - {
  event: 'SERVER_BOOTSTRAP_ERROR',
  message: 'RegExp.prototype.source getter called on non-RegExp object',
  stack: 'TypeError: RegExp.prototype.source getter called on non-RegExp object\n' +
    '    at RegExp.get source [as source] (<anonymous>)\n' +
    '    at RegExp.toString (<anonymous>)\n' +
    '    at /home/jojoxd/Development/dashboard/node_modules/@tsed/logger/src/logger/utils/tableUtils.ts:115:69\n' +
    '    at Array.forEach (<anonymous>)\n' +
    '    at /home/jojoxd/Development/dashboard/node_modules/@tsed/logger/src/logger/utils/tableUtils.ts:115:25\n' +
    '    at Array.forEach (<anonymous>)\n' +
    '    at drawTable (/home/jojoxd/Development/dashboard/node_modules/@tsed/logger/src/logger/utils/tableUtils.ts:114:8)\n' +
    '    at Logger.drawTable (/home/jojoxd/Development/dashboard/node_modules/@tsed/logger/src/logger/class/Logger.ts:156:21)\n' +
    '    at SocketIOModule.printSocketEvents (/home/jojoxd/Development/dashboard/node_modules/@tsed/socketio/src/SocketIOModule.ts:96:22)\n' +
    '    at SocketIOModule.$afterListen (/home/jojoxd/Development/dashboard/node_modules/@tsed/socketio/src/SocketIOModule.ts:54:12)'
}
  </pre>
</details>

**Describe alternatives you've considered**
I May be able to use `@IO` decorator to create a dynamic namespace, but I think that defeats the whole purpose of using `@tsed/socketio`. It also is not good practice in my eyes.

## Acceptance criteria

- [ ] Allow `@Nsp` and `@Namespace` to use regexes as the socket namespace.
- [ ] Allow `@SocketService` to use regexes as the socket namespace.

