An attempt to standardize link manipulation.

We might undo this commit, but this is an attempt to
simplify and standardize our processing of linked files.

The gcovr script contains a lot of logic for following symbolic links.
Unfortunately, this logic is (a) not well tested within gcovr and (b)
appears to create performance problems (see ticket #11).

This change uses os.path.realpath() to find the true path, and os.walk() to
traverse recursively through links.