Fixed bug in which pointer difference operations were incorrectly typed.

A subtraction between pointers was previously incorrectly considered to have
the type int. The correct type is ptrdiff_t, which may not be the same as int.
Fixed by adding a new type reference variable ptrdiffType that is set on
initialization in a way similar to upointType and the fixed the cabs2cil
translation to construct the pointer difference with the correct type.

Without this fix the resulting tree could break the invariant that both
arguments of a binary operator will have the same type (casts are inserted
to make this so. For example if "p" and "q" are pointers and "i" is an int
then CIL would previously have allowed the expression "(p - q) + i", which
violates this invariants betcause the two arguments of the "+" are of
different types. With the fix CIL inserts the necessary cast to "i".
Merger: fix integer overflow in pragma

The merger introduces a #pragma containing the date of merge.  This used to be
an integer (seconds since epoch), which overflows OCaml's integer on 32-bit
architectures since 2004.  This patch treats the parameter as a string instead,
avoiding the overflow.

Thanks to Oliver Schwahn for the report.
Native versions of OCaml tools

Detect and use native versions of OCaml tools if available.
Use new ptrdiffType in consistency checks

Fixes 3 failing regression tests.
Fix old broken regression tests
Escape TeX strings in Makefile

Fix doc generation.
Bump version number
Update changelog
Regenerate configure
Fix MSVC build parameters for MSys

Invocations of MSVC cl compiler were using "/" as the option
switch rather than "-". This isn't needed - cl understands
"-" as well as "/". Not only is it not needed, but it is
not wanted because when invoking cl through the MSys bash
shell MSys will see the "/" and attempt to treat what
follows as a Unix style path that it will "kindly"
translate to a Windows style path before calling cl.

There are more instances of this issue in Perl scripts, but this
is enough to get Cil built, and I don't speak Perl.
Fix recursive variable in ocaml Makefile

Thanks to Jan Smets for the report.
Also use CAMLDIR systematically.
Fix caller list in EasyCallGraph

Thanks to TheAnh Do for the report.
Escape TeX strings in Makefile (bis)
Use actual prime numbers in function checksum

119 = 17 * 7
Make breakString tail recursive

This helps when breaking very long strings, e.g. in GText.
Thanks to Christian Collberg for the report.
Escape Tex strings in Makefile (ter)

Finally, use printf instead of echo.  This should work everywhere.
Add a vinit field to varinfo

This field is used to store the initializer of static and global variables.
Use local initalizers for static variables

Disabled by default, controled by Cil.makeStaticGlobal.
Constant qualifier is preserved for static variables.
Add --makeStaticGlobal flag

Convert local static variables into global variables.
Enabled by default for backward compatibility.
Test for const initializer with side-effect