Make <*> fast

I'm making a pull request not because this is ready, but because I think it works and I'd appreciate any help getting it into a proper state to actually use. I have done some limited benchmarking, and the results look good. It looks moderately faster than the current implementation in monolithic contexts, and I believe it gives exactly the asymptotic behavior we want in incremental contexts.