Add Sphinx styling for classes/modules

Before we'd only tried documenting C code, which doesnt have those
entities.  But to use this style with Python/Lua/etc, we need additional
CSS styles.
Scripts for running command-line tests

This patch adds helper scripts for running commands and verifying their
output.  This can be used to produce a bunch of similar test cases,
which only differ in the input passed into a process.
Allow CMake to set doxygen versions explicitly

The current logic in conf.py only works if you run sphinx-build from
within a git clone of the source repository.  This new logic works from
within any CMake build directory, even if it was produced from a raw
tarball.  We still fall back on using git-describe if CMake hasn't set a
version explicitly, which lets the documentation still get built
correctly on readthedocs.org.
Default example library prereq is now libcork

None of our projects uses glib anymore, they all use libcork instead.
Let's use that as the example library in the template.
All placeholders are now called APPNAME

There were a couple of places we were using "changeme" or
"PLEASE_DEFINE_APPNAME".  Now we're more consistent.
No default value for CMAKE_OSX_ARCHITECTURES

We no longer set a default value for CMAKE_OSX_ARCHITECTURES.  (Before,
we tried to set a default that would compile a universal binary.)  Now,
it's up to use to set this however you want.
Install Valgrind suppression files

You can now place Valgrind suppression files into the share/valgrind
directory, and they will automatically be installed into
$PREFIX/share/valgrind.
Better /bin/sh compatibility in run-test

I guess the run-test script had an if test that used a bash extension.
This makes it work with dash, too, and presumably any other /bin/sh
clone.
Only configure @VARS in pkg-config file
Extract Sawmill disruptor queue code into a new library VRT

The disruptor queue code in Sawmill is now a separate library called libVRT
("Varon-T") together with a test case.
Varon-T doesn't depend on Taconic

This library will just contain the low-level disruptor queue
implementation; it won't have anything in it related to the Taconic
project.
Refactor header files

This patch removes the <vrt/state.h> header file.  It contained two
things: debugging macros, which have been placed into queue.c directly;
and error macros, which now have their own header file <vrt/error.h>.

The value interface and yield strategy interface have also been separate
out into their own header files: <vrt/value.h> and <vrt/yield.h>,
respectively.

In addition, this patch adds a top-level <vrt.h> header file that loads
in all of the pieces needed to use the Varon-T library.
Refactor source code

This patch separates the yield strategy implementations into a separate
file.
Removing <vrt/error.h>

It turns out that we're not actually using any of the error codes
defined in that header file, so it's completely unneeded.
Remove `type_id` from value type interface

We don't really need this, and it just takes up extra space.
Remove `const` from value type references

There are several places where we were passing around pointers to
`const struct vrt_value_type` instances.  However, we can't really
require the value type implementations to not be mutable; it might be
necessary for a value type to update one of its fields whenever an
value instance is created or freed.
Remove reference to TACONIC_LIBRARIES

We had already told CMake not to look for Taconic, but we were still
linking with it.  This would cause link errors if your build directory
was originally set up when we were still linking with Taconic, and you
no longer have Taconic installed and visible to the linker.
Update Sphinx configuration to work with Python 3
Merge remote-tracking branch 'templates/c-template' into develop

* templates/c-template:
  Update Sphinx configuration to work with Python 3
  Only configure @VARS in pkg-config file
  Better /bin/sh compatibility in run-test
  Install Valgrind suppression files
  No default value for CMAKE_OSX_ARCHITECTURES
  All placeholders are now called APPNAME
  Default example library prereq is now libcork
  Allow CMake to set doxygen versions explicitly
  Scripts for running command-line tests
  Add Sphinx styling for classes/modules
Link with pthreads library on Linux

Our test case executable uses the pthread library to instantiate a
handful of threads to test our Disruptor queue implementation.  This
patch updates our build scripts to use CMake's Threads module to link
with the appropriate pthreads library for the current platform.