Only decode/collapse paths.

This operation cannot fail.
Move cfs global.
Move path resolution to CFS layer.

The Chirp server now only URL decodes and collapses paths from the wire. The
CFS layer now resolves these paths which usually involves prepending the root
path and a final collapse.

The net result of this change is reduced coupling of modules. Now every module
"above" the CFS layer sees the same abstraction of the Chirp root as clients.
Add test cases for proxy/hdfs.

This commit also makes HDFS function properly for an empty host:port. This
indicates the user wants to use the "site default", supported by the hdfs.h
API. [This also conveniently allows us to write the test case for HDFS without
specifying a specific host:port.]
Merge branch 'chirp-root' of git://github.com/batrick/cctools into batrick-chirp-root

This pull request cleans up how path resolution is done in the Chirp server.
Before, all paths were "fixed" from the wire by URL decoding the path and
prepended the "root" path. This patch makes the chirp_server.c only decode
paths. The CFS layer now "resolves" all paths by prepending its root.

The net result of this change is reduced coupling of modules. Now every module
"above" the CFS layer sees the same abstraction of the Chirp root as clients.
Consequently Chirp ACL/tickets are thus simplified. [This is also helpful for
the current Chirp Jobs work as path resolution needs to occur within the CFS
layer.]

I've done manual basic tests with both hdfs:// and chirp:// URLs. I'm working
on test cases for both of these that will exercise these code paths in
autobuild.