Initial bash-FUSE (booze) proof-of-concept.

Capable of running a hello-world filesystem in bash, albeit with some gross
hacks (libfuse expects a real setenv(3), which bash hides).
Implementations/stubs for FUSE API functions.
Add a small library of useful things for booze filesystems.

Mostly just shell versions of various system #defines.
Add a basic demo passthrough filesystem.

Has a known bug with reading the end of a file that ends with one or more
newlines, since bash's $() construct removes those.
Implement booze_utimens().
Implement release, fsync, and fallocate.
Implement statfs.

Also included in passthrough.sh.
Add (binary-unsafe) write implementation.

passthrough.sh counterpart also included.
Binary-safe read and write implementations.

We fork a child to run the user functions and pass data to & from them via
pipes, which can actually handle NUL bytes (unlike bash variables).
Convert to new associate-array based interface.

Instead of relying on a fixed set of function names, the 'booze' builtin
now instead takes as its first argument the name of an associative array
variable mapping FUSE call names (e.g. stat, unlink) to their respective
handler functions' names.

Also fix up hello.sh to use the binary-safe IO API.
Fix a bug in passthrough.sh.

In non-debug mode, libfuse chdir()s us to /, so we need to grab an absolute
path to the origin directory at the start.
Add shebang lines to hello.sh and passthrough.sh.
Switch fprintf/exit to bash's diagnostic functions.
Add ops.def #include file.

Used to generate a small chunk of code for each FUSE operation.
Fix error handling for a bogus FN_ASSOC argument.

Don't try to continue if the user passes a non-existent or
non-associative-array variable name as FN_ASSOC.
Add a bit more information to the builtin's help string.
Merge remote-tracking branch 'github/master'
Brief README description.
Add cowsayfs.sh and mention examples in README.