Fix an issue caused by detecting the encoding when first data ia empty

If the first data passed to `Diff::LCS::Hunk` is empty then we get an error due to the encoding detection introduced in 1.2.2.
This attempts to use the old data as an encoding source, falls back to the new data as an encoding source and then finally to a string literal.