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. 
This test was expecting that the `force` option would be overridden by the `dry` option. This would be very difficult to implement in the current system, as each option does not have access to the other options. Further, I don't think that it is necessary to make `force` and `dry` mutually exclusive.

I've tested this on the command line, and it is not necessary to remove the `force` option. In otherwords, running `git clean -f -n`  still performs a dry-run without deleting anything.