Remove conioh.h and mygetch.c, these were unused
Only add the "baud" function when SOFTWARE_SERIAL_TX is defined

The setBaud function used by the "baud" function (e.g., called by
func_setBaud) was only defined when SOFTWARE_SERIAL_TX, but the "baud"
function was enabled whenever TINY_BUILD was not defined. This caused a
compilation failure when SOFTWARE_SERIAL_TX was disabled but TINY_BUILD
was not enabled.
Don't reference find_user_function with TINY_BUILD

That function will not be defined, causing a compiler error. To properly
fix this, the USER_FUNCTIONS macro is moved from bitlash-functions.c to
bitlash.h, so it can be used in bitlash-parser.c as well.
Fix use of AVR GPIO registers

The previous macros were syntacticaly invalid and caused a compiler
warning. Additionally, for targets that have GPIOR0 but not GPIOR1 they
would cause compiler errors. This fixes both issues.
Don't include Arduino.h in bitlash.cpp

This is already done in bitlash.h, so this is not needed. However, in
bitlash.h we do have to move up the Arduino.h include a bit, because the
code that determines the build type depends on CORE_TEENSY, which is
defined by Arduino.h when compiling for the Teensy.
Don't include bitlash-unix.c from bitlash.cpp

Since there is a Makefile in src that just compiles the individual
source files in src/ which does not need bitlash.cpp at all, it seems
pointless to also support compiling the unix build by compiling
bitlash.cpp manually.
Rename all source files from .c to .cpp

In the Arduino build, they were being compiled as cpp already, since
they were included by bitlash.cpp. This makes this fact more clear. In
the UNIX build, they were compiled as .c, so this commit temporarily
breaks the unix build.
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.
Add a bit more structure to the Makefile

This moves more stuff into variables, which makes it easier to
selectively change things in the build.
Replace char * with const char * where applicable

This fixes some compiler warnings that are shown for a UNIX_BUILD, since
that build was also converted to C++, but also improves general
const-correctness.
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.
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 unused function declarations

These functions were declared for AVROPENDOUS, but no logner used. The
use of connectBitlash was removed in 357fd6f, the use of usbMoueOn and
usbMouseOff was removed in 024c56944.
Clean up support for older Arduino versions

Now, src/bitlash.h requires that either ARDUINO or UNIX_BUILD is
defined. If this is not the case, compilation fails with an error.

Arduino versions below 018 did not define the ARDUINO variable. This
means that for those versions, the user must manually set the Arduino
version to make the build work.

Furthermore, the ARDUINO_BUILD and ARDUINO_VERSION macros are dropped,
since now the ARDUINO variable can just always be used.
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).

This change breaks compatibility with Arduino versions older than 012,
since those do not have the Print class defined, making it non-trivial
to support those.

This also temporarily breaks compatibility with Arduino versions below
019, which don't contain the Stream class, but this will be fixed in a
subsequent commit.