Run/debug-ability

* Added some missing files
* Further cleanup
* Adaption to non-portable assert (as use of assert like it was is a bad
  habbit on any system following libc standard).
Access mode flags interpretation follow standard

O_RDONLY, O_WRONLY, O_RDWR was expected to be implemented as in Tinker (or
HURD actually), which is not what the standard says. POSIX does not require
these three to be implemented as bits, only that the rest of oflags are.

POSIX is specific about that they should be separated values though, and as
such 0 is a valid value. Which turns out how Linux interprets O_RDONLY, as
0. I.e. one can't bit-test against 0.

This solution should make it transparent how these values are implemented, i.e.
code should now run on Linux, HURD, Tinker and any other system strict to
POSIX alike.

Alternative solution would be to change the interpretation of these
names in mqueue.h (this is how Tinker does it when running as a sub-process
under Linux) but there is always a risk when redefining with header-file
contents.