Adds a lazy singleton that will be created on first use and then reused.
void addLazySingleton<T>(Function constructor, {String? key});