Goddddddddddddddd
Let's just call this OperationQueue
Nuke stuff we don't actually need
Implement the library

* Add priority to KeyedOperation
* Put a PrioritySemaphoreSubject at the front of the pipeline
* Rig operations that don't have keys to run in parallel

I'm at least 88% sure this won't deadlock. Probably.