Don't eat my ARGV!

Change the way that OptionParser.parse! is called, so that it doesn't
directly sink its teeth into ARGV.  This necessitated changing the way that
collect_command_line_tasks get the list of command-line arguments to examine
to get tasks and environment variable definitions, but that's a relatively
minor thing.
Merge pull request #9 from mpalmer/dont-nuke-argv

Don't eat my ARGV!