Extended C and C++ compilation flags

Turning on more warnings
Common header file for macros.

Copy disabler macro
Overridden copy constructors and assignment operators
Using member initialization list
Removed comma at the end of enumeration
Default copy constructor and assignment operator implemented
Removed extra semicolons

From the end of namespace declarations
Base classes should have virtual destructor
Deriving from stl classes is not allowed