Add JSON parser library.

Code is v1.0.0 unmodified from [1] distributed under BSD 2-Clause license.
Code changes are hosted at [2].

[1] https://github.com/udp/json-parser
[2] https://github.com/cooperative-computing-lab/json-parser
Add sqlite3 v3.8.2 amalgamated library
Add helper library for dealing with file descriptors.
Add Chirp Job interface.
Cleanup Chirp children.
alphabetize/organize makeflow headers
Chirp batch job module and some reengineering.

This commit reengineers batch job to better support modules.  A bare-minimum
file system layer is added to allow files to be off the local file system.
Correct wrong format qualifiers.
Conditionally include Linux-specific sched.h code.
Copyright boilerplate.
Move sqlite3 to Chirp.

This addresses concerns that programs linking to dttools would have name
collisions.
Remove experimental limiting of processor cores in a job.
Remove unneeded headers.
Add documentation on the using batch_fs_* API.
Support HDFS access for -T hadoop.

Previously Makeflow had to run on FUSE+HDFS to access files.

Here's an example:

env HDFS_ROOT_DIR=/hdfs/host:port/path/to/working-dir HADOOP_USER_TMP=/a/tmp/path/in/hadoop HADOOP_PARROT_PATH=/path/to/parrot_run makeflow -T hadoop --working-dir=hdfs://host:port/path/to/working-dir Makeflow

HDFS_ROOT_DIR is used as the sandbox by Parrot before running the job (it is passed as --work-dir to Parrot).
HADOOP_USER_TMP is just a directory in Hadoop where job status information is stored.
HADOOP_PARROT_PATH is the Parrot executable you want to use.
LOCAL Hadoop jobs must also be run on the remote_queue.
job_commit, job_kill, job_status now take an array of job ids.
Fix debug message to be like others.
If no scheduler found for FS, quit quietly.
Move bundle_directory after batch queue setup.

Since it relies on the new batch FS.