Make DDTTYLogger subclassable 

Currently, you cannot create a superclass of DDTTYLogger without creating a duplicate static instance of DDTTYLogger. This commit allows for a superclass to be created by overriding the sharedInstance method. The singleton pattern was changed to utilize a new GCD method and the init method was changed to allow for multiple instances to be created. This is helpful for testing when multiple instances need to be created and destroyed during a single run.