Support passing stdin to the diff child

`:w !colordiff % -` acted weird in vim, it marked the whole file as changed. It
turned out that the following case also exhibits the issue:

    echo -e "1\n3" | colordiff <(echo -e "1\n2\n3") -

Expected output:

    2d1
    < 2

Actual output:

    1,3d0
    < 1
    < 2
    < 3

This patch solves this issue by not closing STDIN and let the child inherit it.
Next, it reads input from a variable handle instead of STDIN (since the child
is consuming it).
Fix misinterpretation of a - (not an option but stdin)

`echo 1 | diff - -` should show nothing, not "1".
Merge pull request #9 from Lekensteyn/fix-stdin

Merging these changes, because I don't see a reason not to.  Thanks for your work, Lekensteyn