automake: don't treat warnings as errors.
Allow to store simulation parameters inside the ELF file.

For now this is a proof of concept. Storing parameters works fine,
reading them back, too, but instead of being used, they're simple
written to the console. For now the parameters are device type and
cpu frequency, but the concept can be extended easily to all other
command line parameters.

The proof is applied to the simple_serial example.

The point of this strategy is to avoid the neccessity to run
simulavr with more command line parameters than just the name of
the ELF file. At compilation time we know best for which device
we compile, after all.
ELF simulation info storage: bring SIMINFO_DEVICE() into action.
ELF simulation info storage: bring SIMINFO_CPUFREQUENCY() into action.

Substantial part of this patch is a move from accessing protected
properties of class AvrDevice directly to using their Getters.
ELF simulation info storage: introduce a length variable.

This makes the ELf file slightly bigger, but reading it more simple
and failure-proof.
ELF simulation info storage: bail out on malformed .siminfo sections.

avr-gcc has been seen to set the length field to zero. Clearly a bug,
but ignoring bugs doesn't help.
ELF simulation info storage: introduce SIMINFO_SERIAL_OUT().

Applied to the simple_serial example, but no action yet,
just the info transport.
ui/serialrx: implement SerialRxFile.

This class moves serial output to a file, to a special file or to
stdout.

While there's special_output_port already, using an UI device
neither changes the AVR code nor does it influence AVR behaviour.
ELF simulation info storage: bring SIMINFO_SERIAL_OUT() into action.

Once I found out on how it's done, it was surprisingly simple.

Even better for the user: No need for TCL, no need for Python, no
need for Swig, just add a single, simple macro to your AVR source
code.
ELF simulation info storage: introduce SIMINFO_SERIAL_IN():

Almost the same as SIMINFO_SERIAL_IN(), but the other direction.
ui/serialtx: implement SerialTxFile.

Just like the Rx counterpart, this is for communications between
a file/special file/console and the actually simulated UART. Works
beautifully.
ELF simulation info storage: bring SIMINFO_SERIAL_IN() into action.

Just as the Rx counterpart, you can now connect to the console,
a pipe file or even a serial device file of the host. All without
additional scripting and languages, just a macro in the AVR source
code.