Automate conversion of options to arguments

As discussed in PR #61, this pull request creates a more structured system for converting task-options to CLI flags and arguments. After I tweaked my original solution to accommodate the various use cases, I decided that it would be easiest to put the bulk of the logic in a separate module that is reusable by other projects.

This PR uses `flopmang`, a module which I wrote just for this purpose. It is fully unit-tested, and I encourage you to look over the code when you have a chance: https://github.com/dylancwood/flopmang. 

I tried to keep the changes here small in scope by not modifying any of the tests (except one, see notes in-line) or adding any new options. Hopefully this gives you high confidence that the changes do not affect the functionality of the code. 

Please let me know if you have any questions or concerns. 
I think that this original output is not actually what we would want. If the each argument is wrapped in quotes when it is passed to the child process (and I think that they should be for security reasons, but maybe they aren't), then `-e *.log` would just register as an unknown option. See the output from my terminal below. If the arguments are not wrapped in quotes, then the two `.expect` statements are equivalent anyway.

```shell
harmony:coins_core dylan$ git clean -n
Would remove npm-debug.log
harmony:coins_core dylan$ git clean -n -e *.log
harmony:coins_core dylan$ git clean '-n' '-e *.log'
Would remove npm-debug.log
```