TODO extract this to another class or module and write unit tests
id_set may be a range, array, or string
id_set is a string comming from the vim client action is -FLAGS or +FLAGS
flags is an array like [:Flagged, :Seen]
not used for anything
do this just once
called internally, not by vim client
holds mail objects keyed by [mailbox, uid]
gets 100 messages prior to id
borrowed from ActionView/Helpers
deprecated
expects a block, closes on finish
[Validate]