Removed code that would never be run

since program will always be `cpanm` (never `perl`).
More correct argument handling.

The shim looks to see if a program is being run like this:

    perl path/to/script.pl

and saves 'path/to' in PLENV_DIR. But the file might be an input file,
like in this:

    perl -e '...' path/to/script.pl

Which we don't want. So we bail out after -- or -e. We also need to
handle:

    -E
    -wle
    -e1
    -E'...code...'

etc. The patterns used in a Bash case statements aren't really up to the
task, so I used a better syntax.

It now works for all the cases I could think of.
Merge pull request #48 from ingydotnet/fix-shims-2

Fix shims 2