kerrno
This is an implementation of <errno.h> from libc.
It is just a few macro define constants and the
errno variable.
Please refer to the cppreference docs for errno
for examples of use.
Differences from the C standard
The C11 standard defines that errno must be a macro.
In our implementation,
we just make errno an extern int.