Statically allocate NameBuff
Change buffer.h #defines to enums so they can be used in tests
Add tests for buffer.c and fileio.c
Merge pull request #904 from war1025/dev/buffer_tests

Add unit tests for buffer.c and fileio.c
os/shell: constify arguments

Minor fixes
job: implement job_wait()

Used to wait synchronously for a job to end.
os/shell: implement os_system

With the goal to support pipe-only system() calls.
eval: reimplement f_system() on top of os_system()

This evades the tempfile problem (unless of course one manually adds
redirects to the shell commandline, which some plugins seem to do, e.g.:
vim-easytags).
job: increase JOB_BUFFER_SIZE to 0xFFFF

It used to be 1024 bytes, which is very tiny and slows down some operations
(imaging `cat`-ing a large file). Benchmarks show a large speedup for such
cases. ref #978.

For modern systems 0xFFFF bytes (65535 B = 64 KB = 0.0625 MB) per job
shouldn't be a big problem.
rstream: remove 'reading' struct member

Not necessary, as discussed in #980.

Closes #980.
wstream: allow empty release wbuffer cb

Sometimes a wbuffer is not supposed to be free()'d (such as when it comes
from a constant (possibly static) string, for example.
test/formatc: improve 'inline' function handling

Apple seems to define some functions as `inline` but not `static` in
headers. The ghetto parser wasn't unbelievably happy with this.
test/formatc: improve standalone usage

Easier testing.
test/helpers: allow interning Pascal strings

os_system() returns a Pascal string, for example (it also NUL-terminates the
string, but that's neither here nor there).
os/shell: add tests

- The calls to (partially) initialize logging
  need to go. Blocked on #981.