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.
Build man pages based on release date

We build the man pages for a repo based on a release date now, which
greatly simplifies the process.  The extra benefit is compiled man
pages are now consistent across all installations instead of dated
based on when a repo was built.
Merge branch 'feature/man-pages' into c-template

* feature/man-pages:
  Build man pages based on release date
Fatal warnings with Intel compiler

We want -Wall and -Werror with Intel's compiler, too.
Don't install empty man page directories

The CMake logic for installing man-page link files would create a
directory for each section that might possibly contain links.  Now it
only creates directories for the sections that actually contain links.
This also fixes a bug when using CMake 2.6, where the docs/links
directory needed to be present, even if your project has no links
whatsoever.  It's now fine for the directory to be missing.
Explicit header and footer in man pages

You now need to explicitly provide the text that goes in the header and
footer of each man page.  We were relying on a pandoc default before,
but that default has changed recently, so now we're requiring you to
provide specific text.
Remove old Sphinx documentation template

To complete the move to man page documentation.
Merge branch 'feature/docs' into c-template

* feature/docs:
  Remove old Sphinx documentation template
  Explicit header and footer in man pages
  Don't install empty man page directories
Update to latest libcork API
Merge remote-tracking branch 'template/c-template' into develop

* template/c-template:
  Remove old Sphinx documentation template
  Explicit header and footer in man pages
  Don't install empty man page directories
  Fatal warnings with Intel compiler
  Build man pages based on release date
  Warnings are errors on clang
Message parsing in public API

I've tweaked the existing internal helper functions for encoding and
decoding messages and put them into the public API.  They now operate on
the new `crs_message` type, which encapsulates the content of a message
sent across the overlay network.  Each message instance is either in
write-only mode or read-only mode.  Write-only mode allows you to append
data to the message, building up the message content in pieces.  You
then give the message to the overlay network, allowing it to route it to
its destination.  On the receiving end, we create a read-only
`crs_message` instance, which is decoded and passed to the application
that should process it.  During read-only mode, we maintain a cursor
into the message content, which is advanced forward as parts of the
message are decoded.  This lets us divide up the decoding responsibility
— the node itself is responsible for decoding the application ID, for
instance, while the application code is responsible for decoding
everything after that.

Right now when writing, all of the message content is concatenated into
a single buffer.  The API should allow us to replace that with some kind
of rope structure, if we want to try to support scatter/gather in the
I/O layer.
Construct node references from addresses

Before, the constructor function for a node reference took in both a
Pastry identifier and a network address that we should use to contact
the underlying node.  However, we won't always know in advance what
Pastry identifier to use.  In particular, for the bootstrap node, we
only have a network address.  So now it's the responsibility of the node
reference constructor to contact the node to see what it's Pastry
identifier is.
Applications have names

Each application that's registered with a Croissant node now has a name
in addition to a 32-bit ID.  We use this in some new logging messages to
make it clearer how messages are routed between nodes and to an
application on the destination node.
tmp