Don't include Arduino.h in bitlash.cpp

This is already done in bitlash.h, so this is not needed.
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.