Add version to filename of shared library

Introduce a new Charmonizer class chaz_SharedLib to build various
filenames.
Set shared library version

Using '-current_version' for Mach-O and '-Wl,-soname' for ELF systems.
Convenience function to create new CFlags object
Move detection of directory separator to chaz_OS
Add MSVC /nologo automatically
Functions to create lemon rules in chaz_MakeFile
Rework Makefile paths

Build paths in C and don't use Makefile variables.
Eliminate Makefile variables for file extensions
Eliminate DIR_SEP macro in charmonizer.main
Add dependency on .cfh files in Makefile
Remove ineffective const

Discovered by -Wextra.
Regenerate charmonizer.c
Quote Windows DIR_SEP
Fix object extension for GCC/nmake
Regenerate charmonizer.c
Create soname symlink
Fix wrong variable name
Regenerate charmonizer.c
Mark some unused variables
Add missing field initializers