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.
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 branch 'release/0.3.2' into develop

* release/0.3.2:
  Bump Homebrew formula version for 0.3.2
Preinstalled packages

On Mac OS X, some packages are preinstalled system packages, which means
that Homebrew (what we're using as the native package manager) doesn't
know about them.  That means they end up looking like they're
uninstalled and not available.  You can now set a
`preinstalled.homebrew.[package]` variable to tell Buzzy about these
preinstalled packages.  The value of the variable should be the version
number that is preinstalled.
Fix unused function warning
Check minimum version for native packages

If a native package is available for some Buzzy dependency, we must make
sure that the native version that's available satisfies any version
constraint in the dependency.
Warnings are errors on clang

We were setting -Wall -Werror when compiling with GCC to make sure that
we get rid of all compiler warnings as part of the standard build/test
process.  Now we do that for clang, too, for when we're developing on
Mac OS X.
Merge remote-tracking branch 'template/c-template' into develop

* template/c-template:
  Warnings are errors on clang
  Allow custom library installation directory
  Specify network connection to tile-monitor
  Support the Tilera platform
  Support for FreeBSD
yum -C instead of --cacheonly

The `--cacheonly` long option isn't available in RHEL5's yum version.
The equivalent `-C` is available, however, in the older and newer
versions.
Don't require check test harness

We use check [1] as one of our testing harnesses.  RHEL5 doesn't provide
a new enough version of check for our purposes, though.  We can build
and install a newer version using Buzzy, but not until Buzzy is built:
a dastardly Catch-22.  So now we make all of the buzzy tests optional.
This lets us bootstrap and install a version of Buzzy, which we can then
use to build and install a newer version of check, which we can then use
to go back and run the Buzzy tests.

[1] http://check.sourceforge.net/
Fix uninitialized value warnings on RHEL5
Update to latest libcork
Handle multiple installed RPMs

RPM lets you install multiple copies of the same package, targeted at
different architectures.  (To let you install both 32-bit and 64-bit
libraries on a 64-bit system, for instance.)  This means that our
version parser needs to be a bit smarter, since there might be multiple
version strings to parse from the output of `rpm -q`.
Merge branch 'feature/rhel5' into develop

* feature/rhel5:
  Handle multiple installed RPMs
  Update to latest libcork
  Fix uninitialized value warnings on RHEL5
  Don't require check test harness
  yum -C instead of --cacheonly
Recursive pkgconfig.path on Mac/Homebrew

Before, we would set the pkgconfig.path variable on Mac/Homebrew to look
for .pc files in the package-specific directories in the Homebrew
prefix's opt directory.  This ensures that we can find any keg-only
dependencies.  Turns out this is not enough; we need to do that
recursively for any dependency reachable from the current package, not
just for its direct dependencies.
Package slugs

The new `package_slug` variable is used to give a unique name to each
place that we learn about a package from.  This is used to construct the
work directory for a particular package.  This ensures that if we try to
build a package from two different places (e.g., from a git clone
managed by Buzzy, or from a working copy that belongs to the user), we
end up with different work directories.
Merge branch 'feature/recursive-deps' into develop

* feature/recursive-deps:
  Recursive pkgconfig.path on Mac/Homebrew