Fixed a bug when source files had the same names except their extension.

Consider the source files `a.jpeg` and `a.md`, processed in
sorted order. The first must be converted, the second copied. Their
output files are `a.jpeg` and `a.html`. Note that when processing
these output files their order will be reversed, since `html` comes
before `jpeg`.

This scenario resulted in an exception when running Magisto for a
second time. The ordered list of source paths didn't match up with
the ordered list of target paths.

I fixed it by introducing special Comparators: one that sorts the
sources so that files to be converted come first, and one that sorts
the targets so that files that are conversion results come first.