- Import additional exception classes from `src/interfaces/Exceptions`
- Modify `Inject` function to:
- Accept `init` parameter as a function or `true` for instantiation
- Throw specific errors: `DependencyResolutionError`, `InjectorError`, `NoInstantiationMethodError`
- Ensure necessary dependencies are handled properly
- Define property with `Object.defineProperty` for performance
- Add `hasConstructor` helper function to check if an object has a constructor