Use more idiomatic ruby
Conform to the style guide, class macros go before methods
Remove unnecessary parentheses
Restrict access to internal variables
Use the instance variable where the getter is not needed
Align assignments for more readability
Change the default value of the tags paremeter
Simplify Criteria, using blocks instead of building expressions
Rename instance variable to better match what it contains
Merge TodoList and TaskList, there is not reason for their separation
Remove monkey-patches used previously by Criteria
Add spaces around operators