Public header file

This patch adds a public header file that includes all of the Copse
public library functions.
cps_rr_run_one_lap function

The new `cps_rr_run_one_lap` function executes all of the continuations
that are currently in the round-robin scheduler's queue, and then
returns.  If any additional continuations are added during that
execution, they'll be remembered, but won't be executed until the next
call.

The `cps_rr_run` function has been renamed to `cps_rr_drain`; it runs
*all* of the continuations in the queue, even those that are added
during the execution.
Set library version correctly

We were using SOVERSION to set the full build version of our shared
libraries.  SOVERSION should only contain the first number of the build
version triple.  The VERSION property is what should contain the
library's full build version.  Also, the CMake build file now includes a
description of when and how to update the library version.  (It
*shouldn't* match the package's release version.)
Don't use GLOB to detect library source files
Better CMake 2.6 support

I guess the default output directory for configure_file in 2.6 is the
root, not the current binary directory.
Fix add_test() to work with cmake 2.6

This patch makes the usage of add_test() in tests/CMakeLists.txt
backwards compatible with cmake 2.6.  Of note, we have to ensure
the current working directory is CMAKE_BINARY_DIR before running
the cram test cases.  We can do this within add_test() with prefix
command to ccram.
Fix tests/ccram to use POSIX string equality operator

This patch updates tests/ccram to compare strings using `=`, which is
POSIX sh compliant.
Merge branch 'feature/posix-sh' into c-template

* feature/posix-sh:
  Fix tests/ccram to use POSIX string equality operator
Support for FreeBSD

We update the scripts to use `/bin/sh` instead of bash.  Also, a
small update to `CMakeLists.txt` is included for making debugging
a little easier.
Support the Tilera platform

This patch provides build and test script updates for the Tilera
platform.  The cmake scripts autodetect if you are configuring on a
system with a Tilera MDE installed, so you can use the normal `cmake`
command in a build directory with standard cmake options.  Note that
we turn off building the documentation on Tilera, even if Sphinx is
installed.

The major modification to our standard workflow is testing: replace
`make test` with `./tile-test`.  This assumes there is a working
connection to a Tilera device.

Installation requires sudo access, i.e., `sudo make install`. If you
intend to use these files regularly, then you should use an installation
prefix that includes `$TILERA_ROOT/tile`.  One good example is
`$TILERA_ROOT/tile/usr/local`, but you can use any directory you want
that is supported by the various `tile-monitor` upload and mount options.
Merge branch 'feature/freebsd' into c-template

* feature/freebsd:
  Support for FreeBSD
Specify network connection to tile-monitor

This patch updates the tile-test script to use a network connection
when connecting to a Tilera processor using tile-monitor.  This appears
to address the problem of slow execution and crash shepherd processes
when connecting over the (default?) serial connection.
Stable ABI

Users of this library should no longer allocate any `cps_cont` instances
themselves; this is to provide a stable ABI.  (This lets us add private
fields to the type without library users having to recompile.)
Continuations no longer return a value

Before a continuation's `resume` function was supposed to return a
libcork error code (0 for success, -1 for error).  But we don't need to
use the return value for that purpose; instead, we can use the
`cork_error_occurred` function when control returns back from whatever
string of continuations were executed.

This means that `resume` functions should now signal an error by
returning (after setting a libcork error condition), and should signal
success by transfering control the to `next` continuation.
Allow custom library installation directory

It turns out that some Linux distros (ahem, RHEL) want you to put 64-bit
libraries into /usr/lib64, not /usr/lib.  So we need to allow the user
to override the destination directory that we use when installing
libraries.  This new `CMAKE_INSTALL_LIBDIR` variable seems to be the
standard one to use.  We cannot rely on it being either a relative or
absolute path (see [1]), but the usage in this patch should work either
way.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=795542
Merge remote-tracking branch 'template/c-template' into develop

* template/c-template:
  Allow custom library installation directory
  Specify network connection to tile-monitor
  Support the Tilera platform
  Support for FreeBSD
  Fix tests/ccram to use POSIX string equality operator
  Fix add_test() to work with cmake 2.6
  Better CMake 2.6 support
  Don't use GLOB to detect library source files
  Set library version correctly