Added order.items.filter() & order.batchFor()

The former makes order.items behave like an array, yielding each item as
it goes and injecting the role into the item.

The latter enables asynchronous retrieval of the batch for a given
criteria, based on the items in the order.