Use absolute path for sourcefile when using symbolic links. Otherwise, the
symlink will refer to a path relative to the directory of the destination.
Convert user specified working directory to an absolute path.
Use string_format() to store absolute pathname.
Merge branch 'workerpathfixes' of git://github.com/dpandiar/cctools into dpandiar-workerpathfixes

Fixes #345 by converting the specified relative path to absolute.

Uses absolute path for source when symlinking. Previously, the symlink was
created relative to the current directory. Here is an example of the problem:
consider a directory containing 2 subdirs - cache and t.1.

When we symlink a file a.in in cache into t.1 as ln -s cache/a.in t.1/a.in then
t.1/a.in will simply point to a non-existent file as the link will be traversed
relative to t.1.
Solaris needs limits.h for PATH_MAX.