Refactor AG.
* Move libgateway to AG/AG-core, since libgateway is only used by AG.
* Move AG/drivers/common to AG/, and remove the AG-common target.  Code
in AG-common will be built into the AG itself.
Update AG/SConscript and SConstruct to remove AG-common build and build
AG/drivers/common code directly into the AG.
Add support for public-key authentication to the UG and RG.
As a temporary solution until slices become first-class principals in
OpenCloud, have syndicated obtain the principal's private key from the
Syndicate observer and use it to authenticate its gateways.

Still to come: update the observer code to generate and store keypairs
for sentinel principals.

This commit also includes miscellaneous bugfixes and small improvements,
such as keeping the principal's private key in an mlock'ed buffer (and
adding the infrastructure to do this), ensuring we treat the object
returned by read_private_key() and read_public_key() in
syndicate.util.storage as an RSA key and not a string, making sure we
parse and generate user keypars correctly in syntool, making it so
syndicate.util.watchdog can pass an arbitrarily-long stdin buffer to its
child (via the new stdin_cb option in syndicate.util.watchdog.main), and
others.
Merge branch 'master' of https://github.com/jcnelson/syndicate