Make the fetch reesults controller more fine grained

The in memory results controller now does each of it's steps in a
distinct dispatch. Additionally, it keeps the (potentially expensive)
calculation of the data model delta off of the main thread.