Remove some unused commented code
Remove SOFTWARE_SERIAL_RX support

This code was broken and unused. If a console on software serial is
needed again in the future, the upcoming changes should allow the
Arduino SoftwareSerial library to be used.
Drop suppport for Arduino versions below 1.0
Remove support for the Adafruit ethernet shield

It seems this relied on software serial reception, which was broken and
removed. In the future, it should be possible to re-add support by just
passing in a SoftwareSerial instance.

Additionally, all ethernet examples now use the output handler feature
instead of relying on the bitlash library itself to know how to talk to
the Ethernet library or hardware.
Remove ethernet shield support

In the future, it should be possible to just pass in an ethernet client
Stream object and leave all the ethernet initialization stuff where it
belongs.

Additionally, all ethernet examples now use the output handler feature
instead of relying on the bitlash library itself to know how to talk to
the Ethernet library or hardware.
Use Stream and Print classes for input and output

Instead of keeping pin numbers and output handler functions and deciding
on the fly where to send any printed bytes, now a Print* is kept,
greatly simplifying sbp() and friends. Additionally, output can now also
be redirected to an arbitrary Print object by calling setOutputHandler.

Similarly, for the input a Stream* is kept. This allows users of the
library to select any of the available serial port or any other Stream
object to use as the main console. This allows for example to use an
Ethernet client, without needing the bitlash library to understand every
particular ethernet library available (as long as it implements the
Stream interface).
In chkbreak, no longer gobble an input

This is possible since we now have a complete Stream object available
and thus can just use the peek() method.
Allow removing support for arbitrary console Streams

By definging DEFAULT_CONSOLE_ONLY, the initBitlash(Stream*) function is
removed and the console is fixed to whatever DEFAULT_CONSOLE defines.
Doing this allows the compiler to optimize away most of the overhead
(like vtable lookups) involved.
Optimize when SERIAL_OVERRIDE and/or SOFTWARE_SERIAL_TX are disabled

In these cases, either or both of the blout and bloutdefault global
variables are not strictly required. By cleverly making these variables
reference each other, the compiler can optimize them away, without
having to change the code that uses these variables.
Define __PROG_TYPES_COMPAT__

This tells avr/pgmspace.h to define the prog_char types, even on newere
GCC versions where they are deprecated. Ideally, these types should be
avoided altogether, but for now keeping them around is easy.
Fix UNIX_BUILD by using the ArduinoUnix library

The switch to using Stream and Print classes broke UNIX_BUILD, since no
definitions of those classes were available. Instead of also adding
those to bitlash, this switches to using the ArduinoUnix library and
allows removing all of the unix-specific implementation of the Arduino
API as well.

This requires the ArduinoUnix library to be available (by default in a
directory called `ArduinoUnix` besides the bitlash directory, but this
can be changed by setting ARDUINO_UNIX_PATH).
Don't bother including things Arduino.h already includes