Deduplicate a number of files used by modules by moving them to the public directory

Following Scott's sugegstions.
These files include ```amxxmodules.cpp```, ```amxxmodules.h```, and some ```sm_*.h``` libs.
The ```moduleconfig.h``` file for each module has also been moved out of the ```sdk```directory into its parent.
I've took also the opportunity to use AMTL libraries when I could.
All projects should compile fine whatever with AMBuild, MSVC or MakeFile.

Scott, you may want to pay very carefully about the conversions to AMTL, while most of them are ok, I had some doubt about proper usage at some place.

Bonus: this fixes a potential crash at mapchange with nvault if an entry is saved with empty key or value. Not sure why it has not been fixed yet.