Improve clickable filename code

This now uses overlays instead of text properties, making it much less
likely to conflict with minor modes or commands that set certain
properties.