Improved way to create RequestM

(User Story, Investigate , Priority: Medium, Test Status: No automated tests yet , Reported By Justin du Coeur, )
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.)