Implement utf8validator_t

The utf8validator_t is used to check non contiguous
data buffers (forming an input data stream) for
containing only valid encoded utf8 characters.

The interface and implementation of decodechar_utf8()
is changed cause now it can assume that the data stream
only contains valid encoded characters providing that
utf8validator_t is applied first.

Adapted implementation of utf8scanner_t to new interface.
Introduce ramsize_t

Implement functions
 - sizeavailableram_vm()
 - and sizephysram_vm()
which determine the size of the available physical memory in bytes
and the total size of physical memory. The returned numbers has
type ramsize_t (64bit) cause the size of ram could exceed 4GB
(32 bits) on a 32 bit system.

Unittest was added to check that sizeof(ramsize_t) >= sizeof(size_t)
in case of a 128 bit machine !
Implement byteorder module

The module implements converting big-endian and little-endian
byte order to host byte order and vice versa.

* Renamed reverse_int into reversebits_int
* Renamed module reverse.h into bitorder.h
Add type uintfct_t

This integer type is big enough to hold a pointer to a function.
POSIX interfaces assume sizeof(void*) == sizeof(void(*)(void))
but C allows pointers to functions of a different size than pointer
to objects.

The default definition also assumes sizeof(void*)==sizeof(void(*)())
but an added unittest checks that sizeof(uintfct_t) is big enough.

In case of some special platform a system specific sys_uintfct_t
has to be added and uintfct_t has to be defined as an alias.
Generate symbol map from executable

The new tool projekte/tools/generate_symbol_map.sh is called
after the linking stage from projekte/unittest.prj
which writes file "bin/unittest.symbol.map".

This will be move into binary.gcc if a generic backtrace mdoule will be available.

The symbol map contains the names and addresses of all static and global functions.
In a future step this information will be used to write stack backtraces.
But before that session data (mapping of shared libs, configuration information ...)
must be stored to allow a full backtrace.
Change log_it interface

The funtion printf from log_it has a new parameter which is a pointer
to log_header_t a newly introduced type.
If this parameter is != 0 a log header which contains timestamp and
error location (function, file, linenr) and error nr is written.
The header replaces log_flags_TIMESTAMP which was removed.

The functions flushbuffer, clearbuffer, and getbuffer are extended with
an additional channel parameter.
Add va_list support to textresource_compiler.c

The text resource compiler generates additional functions
which take vargs parameter of type va_list instead of
additional parameters listed explicitly.

A new function 'printtext' is added to log_it interface.
This function takes a pointer to a text resource function i
as parameter and calls it.

All signatures of functions generated by the text resource compiler
are changed to take only a logbuffer_t * as first parameter.
This allows a logbuffer_t to use text functions to write language
specific header information.