Improved symbolic link functionality.

Added :is_symlink_cyclic(), testing whether attempting to resolve such symbolic
link in the brute-force way would induce an infinite loop, and pair of setters
:set_string_to_symlink_target_first() and :set_string_to_symlink_target_last()
setting the passed string variable to the immediate and transitive targets
(respectively) of the passed symbolic link.

Refactored additional getters to setters -- most prominently,
remove_string_suffix().