Use cmdargs for command line parsing.

Changed the command line arguments parsing to use cmdargs -> http://hackage.haskell.org/package/cmdargs; tutorial -> http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Implicit.html;

This is to try something new, and also get a load of stuff for free -> using this package generates nice usage strings, with versions, and documentation for options, examples etc.

The way this is implemented right now, we'd have the following invocations:
diffr diff OLDFILE NEWFILE -o=outputFile.diff
diffr patch OLDFILE PATCHFILE -o=outputFile

which means we could create some small wrapper scripts if we wanted to have the same interface as java version (diffr and patchr commands).

It just means that potentially the code is slightly less repetitive (no two mains, no two command args parsing methods etc.

Give it a go.

Next is enabling testing and writing the actual functionality; I am using Eclipse FP, seems to be pretty OK with haskell, not yet as nice as IntelliJ for Java, but it is pretty usable and it can manage the cabal file automatically (wizard).