orccodemem: fix list corruption when splitting memory chunks in two

When splitting orc memory chunks in two, the 'prev' pointer of the
new memory chunk to be inserted was wrong, causing invalid memory
access and double frees later down the line.

https://bugzilla.gnome.org/show_bug.cgi?id=731227
Update .gitignore
Add some checks on the number of variables per type

We want to ensure no more than, say, 8 constants are added
to a program. Adding more will violate pervasive assumptions
in the code, and may lead to various buffer overflows. By
trapping these add creation time, we prevent these issues
without cluttering the code with range checks. The user is
assumed non malicious here.

Add a test to check we can add up to and including the limit
for a type, but no more.
build: Modernize autotools build system
Release 0.4.20
Back to development
configure: Pass -version-info to libtool again
Release 0.4.21
Back to development
autogen: Honor NOCONFIGURE=1

See https://github.com/cgwalters/build-api
orcc: Fix some memory leaks in the compiler
orccompiler: If compiling a program twice, first free the results of the previous compilation
orcarray: Use size_t for pointer arithmetics

Fixes these warnings on windows x86_64:

orcarray.c:80:33: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
orcarray.c:80:22: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
orccompiler: free error message