Update the UNIX build Makefile to work with .cpp files

This allows the Makefile to compile the code again, though it cannot be
compiled correctly yet.
Make sure all functions are properly declared

Now that we changed the filenames to .cpp, the UNIX_BUILD actually
compiles them as C++ instead of C. This means we have to make sure that
all functions are properly declared before being used (in C, using a
function without a declaration would make the compiler just declare it
on the spot, but this is not possible in C++ due to name mangling).

Since the regular Arduino build already happened under C++, all the
functions needed there were already declared.

Additionally, this adds a "mode" parameter to the mkdir call, since that
was left out (which didn't cause any compilation errors previously, but
probably caused a random undefined value to be passed to mkdir).
Explicitely set -DUNIX_BUILD in the Makefile

Previously, UNIX_BUILD was automatically set, but this only worked on
x86 and x86_64. Since the only point of the Makefile is to do UNIX
builds, it might as well set the define explicitely, which could make
the code work on other architectures out of the box as well.
Only enable fprintf and save when SERIAL_OVERRIDE is enabled

Their implementations need to override the output function and cannot work
without that.
Remove SOFTWARE_SERIAL_RX support

It seems it was impossible to actually let this code be used. Also, with
the upcoming changes, this code is probably best replaced with Arduino's
SoftwareSerial library anyway.
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.
Remove AVROPENDOUS support

It's not entirely clear how this support is supposed to work (there
doesn't seem to be an Arduino core for AVROPENDOUS).

This also removes some Teensy-related defines, which seem to be unused.
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.
SQUASH: Remove debug output
SQUASH: Use write instead of print for smaller code

Print::print(char*) only calls Print::write(char*), so it's really just
the same.
SQUASH: Change blconsole, blout and bloutdefault variable order

This prepares for the next optimization
SQUASH: Add new functions to bitlash.h
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.
SQUASH: Revert sp and speol to use spb again instead of Print methods,
since that saves extra function overhead and is thus faster.
SQUASH: Don't initialize PrintToFunction::func

This is not allowed by C++99, but is also not needed anyway.
SQUASH: Also support Arduino 1.0.5