Allow Filename objects to act like strings

Use Comparable and the spaceship operator (<=>) to allow direct
comparisons with strings. In addition, define to_str to make
comparisons commutative and to enable the use of Filename objects
with File.exist?() and File.rename().