Symetry between Query{State,Changes}
Query methods manipulate hash in fewer places
QueryState only alters #hash once
QueryChanges now only alters #hash in one place
Remove need for #hash on query objects
Separate QueryMethod from ApplyMethod
Split state_method.rb into two parts