Add autodoc comments to Graphics.Graph module, importing text from doc.txt
Core: Added low-level function mapping_free_keypair().

This function is needed to perform some low-level modifications of mappings.
Core: Added a dynamic cache size threshold for compile_memsearcher().

The internal cache for compile_memsearcher() could grow very large before
the gc would clear some of its entries (each entry has a size of ~16KB).
It now has a dynamic threshold for when it clears the cache on its own.
Filesystem: Filesystem.Stat()->is* are now flags instead of functions,
in order to harmonize with the Stdio.Stat API. Also includes compat.
Filesystem.Stat: fix compat documentation.
Document the three-arg form of foreach
Manual: More doc about the iterator syntax.
[compiler] fix_type_field now fixes the type of car/cdr

This is needed to make it possible to run fix_type_field before the
tree has been completed.

it is used by the new conditional indexing operator.
Added a two new operators: "?->" and "?:"

?-> can be used to index something that is either indexable or null.
?: is an alias for ||

Very useful for things like:

C c = a && a->b && a->b->c;

which can now be rewritten as

C c = a?->b?->c;

The code in language.yacc also supports ?. and ?[], but there are
syntax conflicts with ?: for those:

?. conflicts with expr?.Module:...
?[] conflicts wtih expr?[softcast]:...

?: was added mostly to be compatible with other 'modern' C-like
languages.
Runtime: Avoid use of negative array index in MAKE_{NAN,INF}

Apparently clang doesn't support indexing with a negative literal,
so switch the implementation to use unions instead, whenever possible.
Compiler: Don't complain about unused private LFUNs. Fixes [bug 6553].
ADT.CritBit: added GC callbacks
ADT.CritBit: iterator uses parent
Parser.XML.Tree: Fixed several issues in namespace handling.
mapping_iterator: _sizeof() always returned undefined
Filesystem.Monitor: Fix race-condition when monitoring directories.

There was an over-caching issue in the directory monitors for
the following case (everything happend during the same second):

  1) A new directory is created.

  2) The monitor detects that the directory was created, and checks
     its contents -- empty.

  3) Some files are added to the directory.

When the monitor returned to check the directory a bit later, it
saw that the mtime was unchanged (since everything above happened
during the same second), so it didn't bother to check the contents.

Now the directory contents are rescanned anyway as long as the
directory hasn't been marked stable.

Also removed some priority bumping in check() that was already
performed properly by status_change().

Fixes [bug 6577] and possibly also some of [bug 6534].
Compatibility with newer versions of FreeTDS ODBC driver.
Fetch date types as fixed length as a workaround for bugs in FreeTDS.
Operators: Casting of objects to programs supported for all objects.

The cast operator now falls back to object_program() when casting objects
to programs when there is no lfun::cast(), or it returned UNDEFINED.

The old behaviour for the above cases was to throw either of the errors:
  "No cast method in object.\n"
or
  "Cast failed, wanted program, got int\n"

Needed to implement [bug 6573].
Compiler: Added low_program_from_svalue().

This allows for passing the parent object and identifier when needed.

This is needed for [bug 6573].