This is a big one.  Please read the commit message.

There are two major contributions to this commit.  The first is full
xattr support.  Now, applications can use the POSIX xattr API to create,
read, set, and delete xattrs on Syndicate files.  The MS holds copies of
them all, and UGs transparently and coherently cache them on read.
setxattr conflicts are handled in a last-write-wins manner.  It is
expected that UG driver code will use xattrs to store persistent
per-file information, so the xattr caching protocol is optimized for
gets and sets (but not lists).

The second major contribution is the initial integration of the UG
driver model into the UG itself.  There are:
  * connect_cache()
  * write_block_preup()
  * write_manifest_preup()
  * read_block_postdown()
  * read_manifest_postdown()
  * chcoord_begin()
  * chcoord_end()

The read(), write(), trunc(), and chown() methods call the above code
where appropriate, so the driver has a chance to intercept and process
data before Syndicate handles it.  In integrating the UG driver with
these methods, I had a chance to refactor and simplify the code for
write() and trunc().  The driver management code, which handles
downloading and reloading the driver automatically, lives in
libsyndicate in closure.cpp.  The UG (and eventually the AG) leverages
it to load and dynamically link up-to-date driver code at runtime.

An important subtlety in the driver design is that Syndicate caches
block data before it is processed, not after.  This is important for
realizing end-to-end encryption:  if the driver implements encryption
and decryption algorithms for blocks, the driver model ensures that
only ciphertext will be cached to disk.

While not tested yet, this commit includes changes to syntool.py to
allow it to handle UG driver binaries (which will, in the future, be
extended to AG drivers).

Beyond these two major contributions, there are some smaller things of
note:
* Use the Syndicate public key to authenticate OpenID RPC calls within
the gateway code (previously, only syntool.py did this).
* Allow the gateway to supply a local copy fo the Syndicate public key,
if available.
* Removed mkfs.cpp, mkfs.h.  We won't be needing these.
* Small bugfixes in many places, including in xattr handling in the MS,
and the response_* API in the MS.

Still to come:
* sample UG drivers (UG/drivers) and SDK
* concurrency tests with processing xattrs
* driver fault and reload tests (once samples are ready).