[BUG] Injected singleton is not a singleton
## Information

- **Version:** 7.34.2

I am registering a provider as a singleton. However, it is being re-initialized per injected cases.

## Example

Here is the dummy class to inject. You will that I am logging whenever the constructor is called

```ts
import { Injectable, ProviderScope, registerProvider, Scope } from '@tsed/di';
import { $log } from '@tsed/common';

@Injectable()
@Scope(ProviderScope.SINGLETON)
export class Sample {
  constructor() {
    $log.info('Sample constructor');
  }

  public log() {
    $log.info('logging something');
  }
}
export const SAMPLE = Symbol.for('Sample');
// eslint-disable-next-line
export type SAMPLE = Sample;

registerProvider({
  provide: SAMPLE,
  useClass: Sample,
});
```

I now have two controllers where I am injecting this. I am providing one as an example:

```ts
@Controller('/')
export class IndexController {
  @Inject(SAMPLE)
  protected sample: SAMPLE;
}
```

When the app boots, I see

```
[2023-08-09T23:45:57.095] [INFO ] [TSED] - Injector created... +2ms
[2023-08-09T23:45:57.114] [INFO ] [TSED] - Build providers +19ms
[2023-08-09T23:45:57.140] [INFO ] [TSED] - MySQL connected to db xxx
[2023-08-09T23:45:57.170] [INFO ] [TSED] - Sample constructor
[2023-08-09T23:45:57.171] [INFO ] [TSED] - Sample constructor
```

I see TWO `Sample constructor` - there should only be one log. 

What am I doing wrong?
