Improved way to create RequestM
Summary: At Alex's talk on Monix Tasks, he described how Monix Task.create works. Instead of the two-phase approach I used for RequestM, based on Promise, he passes a function to create, which is the stuff between prep and returning. This is clearly a better way, so replace prep with this!
(This was a note I took in 2017 -- need to investigate to remind myself what it's talking about.)