Split FileWithType into FileWithType + PathWithType, simplify code using the former single type. Also swap applyGuessers's argument order so we can use partial application.
Move IO out of the type finalizer, since announcing the guesses is only part of the command-line tool, but the type finalizer is potentially usable in a library capacity.