Promote simple clause types into options, fixed, and variable types

Simplifies traversal stages since we don't need to keep reparsing the
string.
Error support for bogus variable names
Implement flag_match_allow_incomplete, useful in validation and testing
Fix some errors revealed by gcc
Support for extracting command names from usage specs
Support for fetching all variables from a docopt description
Allow conditions to span multiple lines
Rationalize and add tests for tabs vs spaces

Tabstops are 4 spaces.
Update README.md