Renamed self.keys to self.options and self.options to self.rev_options, to make purpose clearer.
Changed OptionsList.text property for __str__()
Allowed for empty source text. Removed trailing "\n" from str() output.
Added part_of() to show whether one option set is a subset of another option set
Changed part_of() to check_is_part_of(), raising an exception instead of returning T/F.
Changed key-options separator from ":" to "::" to avoid confusion on splitting with e.g. http://...
Refactoring into optionlines.py
More moved to optionlines.py
Parsing of TaskLine, with tests
Implemented maximum key length for option keys, to allow alignment of options
Moved continuation line facility into optionlines.py
Tests pass for wrapping option lines
Tidied up optionlines code, moving last few tests from test_options.py
Force keys and options to be lower case
Refactoring continuation and prefix lines, to apply same approach to tasks and options
Adjusting indents on tasks and comments
100 tests working for options and tasks
Started task sorting