testsuite: add source files for sharness

Pull in  sharness.sh and aggregate-results.sh from git master
of the sharness project

 https://mlafeldt.github.io/sharness/
testsuite: add sharness tests

Add tests from sharness testsuite itself as 't0000-sharness.t'
(so that the tests testing the suite itself run first)
testsuite: add SHARNESS_TEST_NAME in place of SHARNESS_TEST_FILE

SHARNESS_TEST_FILE was used in a couple places in the creation
of new file names, and thus had to be sanitized to remove extension
or path prefix multiple times. Simplify this use by creating a
SHARNESS_TEST_NAME once, and using that where SHARNESS_TEST_FILE
was previously used.
testsuite: add SHARNESS_TEST_SRCDIR as path to source of sharness

If tests are run from a different directory than the sources, e.g.

 /path/to/test.t

Then SHARNESS_TEST_DIRECTORY (the current working directory) and
the source of the tests and sharness.sh itself are in different paths.
Differentiate these paths with SHARNESS_TEST_SRCDIR and use this
to load sharness.sh in subdir tests.

This will also be useful when running tests from $srcdir in a $builddir
of a VPATH build of some project.
testsuite: Allow sharness extensions in srcdir/sharness.d

Projects may want to extend sharness without directly modifying
the sharness.sh test library. This patch adds support for a series
of `extensions` to be loaded from $SHARNESS_TEST_SRCDIR/sharness.d/*.sh
which may be used to add new functions, unset environment variables,
extend the PATH, etc.
testsuite: load sharness.sh from same directory as test

When tests are run from a builddir (or any directory different
from `.'), ensure we load the `sharness' library from the
same directory.

Instead of the idiom

 . ./sharness.sh

we now prefer

 . `dirname $0`/sharness.sh
testsuite: print passing tests in green

I like me some color output.
testsuite: Add flux-specific code to sharness extension dir

Add code that is flux-specific to the sharness.d directory.
This code sets up PATH to include path to flux binary, adds
flux-specific testsing functions, including test_under_flux(),
and removes some environment variables from the env that may
affect flux operation.
testsuite: process files as args in aggregate-results.sh

Change the strange way aggregate-results.sh processes files
on stdin and instead process files as args.
testsuite: add runtests.sh test driver script

runtests.sh runs all tests named t[0-9]*.t in the current
directory and aggregates the results. This is the 'make check'
driver.
testsuite: wire the tests subdirectory into make check

Add $(top_srcdir)/t to SUBDIRS and include runtests.sh
in our 'make check' target.
testsuite: add basic tests

Add a set of tests for basic functionality required by other tests
in the suite.
testsuite: add basic kvs tests

Add basic set of kvs functionality tests to the testsuite.

This test uses the test_under_flux() function to run the
entire suite under a flux comms instance.
Merge pull request #30 from grondo/testsuite-prototype

Add a simple testsuite for flux-core