DistCache: executable flag, dir support

new features:
- you can now distribute whole directories (this copies all files tracked by ``listStatus`` recursively)
- when distributing single files they can be tagged as executable (automatically checked for local files)

other changes:
- the name/path scheme was changed to preserve the original name. all files are now stored in a job-specific folder, instead of having a job/identifier specific name.
- the arguments passed when registering a file are abstracted away in its own data structure, making it easier to expand the DC the future. (there is no reason why one should have to change ``NepheleJobGraphGenerator`` or ``TaskManager`` for this)
- reworded/expanded some javadocs, and made it clear that local files can only be used when they are accessible form all workers
good catch, its a relic from when this method wasn't synchronized. will fix that.