Adding QwerkDatabase and SingletonFactory, SingletonFactory checks that QDB is only instantiated once. QDB will be used as database abstraction layer for Qwerk