Add readlink and symlink

both release lock, readlink handles link targets of arbitrary size with a geometrically increasing buffer