Generate variable names based on content

Generate variable names in new_const_cname() based on content of the variable
rather than using a counter straight away.
Makefile: improve repo creation target, avoid := notation

The := notation is problematic here since it causes the statements on the
right hand side to be dereferenced immediately even if the repo or .git
target was not specified.  When the source is checked out from a git clone,
the .gitrev file does not exist, but the '$(shell cat .gitrev)' sequence is
executed every time make is called and it produces an error message.  Also,
the '$(shell mktemp -d tmprepo.XXXXXX)' sequence is  executed every time
make is called, which creates a new unique tmprepo.XXXXXX directory each
time.

So, let's rework this target so that the := notation is avoided, and also
to make it a little more efficient by avoiding an unnecessary checkout of
the repository.

There are two functional changes: 1) the temporary directory will just be
called ".repo_tmp" and it will be overwritten each time 'make repo' is
called, and 2) the checked out branch will keep its default name rather
than adopting a new name 'working'.  The user can create a new branch if
they desire and the original remote branch state is already available in
origin/master.
Makefile: checkout all missing files for repo target

Rather than try to maintain a list of the file differences between the
git repository and the source distribution tarball, just get a listing from
git itself and use it to check out the missing files.
remove unused variable to avoid warning
Implementing module name parsing with os.path.
Fix compatibility with msvc < 1400

Visual Studio .NET 2003, used by Python 2.5 32 bit, does not support the '__restrict' keyword.
fully fix build_dir copying
fix constant value check in switch statement generation
keep constant_result when coercing string to char
simplify search for duplicate values in SwitchTransform and make it safer for unexpected value nodes
extend SwitchTransform tests
extend SwitchTransform tests
make SwitchTransform always generate a 'default' clause to silence C compiler warnings about unmatched enum values
changelog
keep constant_result when coercing BytesNode
Try using setuptools in setup.py, allow bdist_egg where possible
Merge pull request #225 from cgohlke/patch-1

Fix compatibility with msvc < 1400
add fix for in-tree symlinks, with updated test
split some overly long code lines
Merge pull request #227 from Infinidat/master

Try using setuptools in setup.py