Create DistributedCacheFile, a pleasant API for managing files to be distributed via hadoop's DistributedCache

Dealing with hadoop's filecache.DistributedCache is kind of awkward.
This gives users an easy way of setting up paths to be added to the
distributed cache, and hides the details of consistent-symlink-naming
and such. This is a prerequisite for loading our indexes in hadoop.