Command Interface

This isn't ready for merge yet, PRing for code review/comments.
It handles these option cases:
* `--beep=boop` (Multi character with value)
* `--debug` (Multi character bool)
* `-aB` (Single character bools)
* `-c ./config` (Single character nonbool with value)
* `-aBc ./config` (Single character bools work with a nonbool+value)