Add source and makefile, update readme

squashed 53 commits into one for simplified tree

WIP: non-functional main template

main.c with non-functional callbacks.  Compiles and runs but returns EROFS on any callback.
Makefile for compiling with the right options.  Also has clean target.

WIP: added fused_pcap option parsing, value validation

move default values to defines

changed all callback function names

matches convention in fuse docs now

WIP: refactor option validation

move source dir and debug into global structure

modify help option so it also shows fuse help

align and update usage text and defaults

capture mount directory in local context

fix noisy fprintf out of debug check

switched path vars from dynamic to static allocation

WIP: initial callbacks to allow file read on mount

by no means finished.. can just barely read a file back.

tweak debug output of filesize option

refactor convert/validate routines for path prefix use

modified the 5 option conversion/validation routes so they can be used
when evaluating path prefixes as well as mount-time options

tweak the way mountPath is created

add pseudocode comments for supporting clusters

cleaned up convertValidateFilesize debug output

make refactored functions static scope

err on validating filesize with non-expected suffixes

WIP: start to flesh out readdir and access callbacks

initial response to readdir and access callbacks.. enough to allow tab completion and listings

flesh out getxattr callback

fix spelling error in readdir param name

WIP: initial handling of file ranges

separates starting and ending files with .. as separator
separation function has the ability to return starting or ending files or both
starting if both params point to same string,
ending if second param is null, both if second param is provided and different.

flesh out statfs callback

comments only: removed unneeded TODO flags

add dummy calls to isSpecialFile

add #defines around xattr callbacks

change utime callback to utimens

add create callback (quick ro response)

add direct_io and nonseekable flags when opening

fix segv in separateEndingFile

added keepcache option to enable per open

add per-instance array for tracking file status

instance array is for now max cluster members big.. could make it dynamic
4 helper functions for populating it, looking it up vi pid, getting and setting via fileInfo.fh
reworked separate function that separates starting and ending filenames

use pkg-config to determine compile flags

add call to separateEndingFile in access callback

protect NULL returns from strdup

if strdup cannot malloc memory, it returns NULL.  two instance fields could have
this happen.  before we dereference either, we need to verify it's not NULL.

add syslog init and log_info on start/stop

add opendir and releasedir to support flag_nopath if >= v2.9

use pthread_mutex to protect instances array pop/clear

return EROFS when opening file with O_CREAT or O_WRONLY

WIP: more work on separating clustered execution flow

version bump, define that is also in makefile removed

update readme to reflect design refinements

WIP: still more work on clustered execution flow

now waits for all cluster members to connect (delays and EINTR errors)
still outputs all of the specified file, does not advance to newer files

WIP: add basic slab allocation for queue links

allocating 31 links at a time and just shuffling them between several linked lists
two list pointers allow read threads to remove from list head without disturbing
ability of parse thread to traverse the list.  Since only the parse thread sets the ->next
pointer and only the read threads set the ->free pointer.  caveat: parse thread doesn't reap
the first link in the instances' free list, and instances don't free the first link in their
queue without first getting the read mutex.

retrieve system pagesize on startup for later use

WIP: better handling of special files

all specials begin with ..
added ..status with sample output
all config options appear as .. symbolic links pointing back to mount dir
eg. ..clustersize=1 -> .
this should help fix issue with tab completion, but more work needed (TODO)

fix uninitialized endFile buffer use bug

allow just -ho option without mountpoint

remove #ifdef around fuse_main

WIP: introduced structure for tracking residual special files like ..last

..last, ..current, ..next, ..abend, and ..status are special files that only
exist on the fuse filesystem.  They persist after a file has been processed.
Therefore, a separate structure is needed apart from the instance structure,
since that gets freed when the file is closed.  Residual files are looked up
based on configuration variables.  This isn't perfect, since non-clustered
reads can occur in parallel.  To work around this, non-clustered users can
be differentiated by slightly different filesize options, eg:
cat /mnt/pcap/filesize=2048p/eth0.pcap.1234
cat /mnt/pcap/filesize=2000p/eth0.pcap.1235
There are still some bugs when using path-based options... sloppy me.

non-special files can start with ..

previously, these would erroneously get separated into a null startfile and an endfile
now, a file starting with .. that isn't special (eg. ..status or ..last) is treated normally
WIP: refactored path parsing code

should work much better now.  residual files work with option dirs in path.
replaced reapConfigDirs, isSpecialFile, isOptionDir, and separateEndingFile
convertValidate* functions now take config structure instead of structure member
option dirs and special files are in a structure, option dirs with validation function pointers
this may allow us to make all option and file handling more generic
allow ctrl-c to break read call waiting for cluster to fully populate