Custom memory allocation/tracking

Overrode new operator and provided version that tracks where memory is allocated.
AllocMap is a class that uses a hashmap to track memory allocations without ever using operator new.
CustomMemory.h and .cpp hold all of the new 'operator new' and 'operator delete' functions as well as macros to direct invocations of standard new to the tracking version.
Logger.h now has a logging function which can be used without a logger object, used to report memory leaks after the logger has been shut down.
enum class LogLevel has been moved outside of class Logger because it is used by the global writeLog function.
winMain now uses getAllocs before it returns to make sure all variables were properly unallocated.


All files include CustomMemory.h before any other declarations which causes redirection of the default new operator to the tracking version