Moved character-printing functions to separate file.
Makefile: enabled GCC warnings.
Moved 'Range' stuff to separate file.
Disallow to set multiple encodings.

Fail, if someone tries to set non-ASCII encoding
when another non-ASCII encoding is already set.
If encoding has been set successfully, it is
guaranteed to be valid.
Moved encoding-specific character handling to 'Enc' class.
Added option to control how invalid code points are treated.

Usage: 're2c --encoding-policy <fail | substitute | ignore> ...'

When re2c encounters invalis code point (e.g., surrogate in Unicode),
it acts with regard to current encoding policy:
    'fail' - fail with error;
    'substitute' - silently substitute offending code point with
        error code point;
    'ignore' - ignore offending code point, consider it valid.
Added tests for '--encoding-policy' option.
Reduced space taken by Unicode tests (~700MB -> ~14MB).

Dynamically generate Unicode strings, used in tests,
instead of hardcoding them in source files.