Made Singleton unable to be instantiated outside of assembly.

Created SingletonFactory class to create singleton's without default constructors.
Sealed Singleton so that it cannot be inherited from.
Removed Singleton Factory

Created a mechanism by which Singleton<T> could support objects that did not support the default constructor
Added Tests for the Singleton <T>