Changed Container::singleton() to only bind an instance if the abstract has not already been bound as shared