starting over from scratch
implement locks
update lock order
implement result-channels
tests for result-channels
add queue, more work on results and locks, and benchmarks for everything
 fix tests, and reformat complex logic in lamina.core.queue a bit
alternate result-channel implementation
get rid of reentrant locks for now, and add lamina.core.node
result-channels with reentrant locks
add ::claim mode to result-channels, and take advantage of that in the queues
make sure nodes only have queues when they need them
useful is useful, and add initial tests for lamina.core.node
add ::drained state, and further tests
initial work on pipelines
restarts and redirects
more tests for node.clj
add pipeline/node benchmarks
optimize channel creation time, and update to latest criterium snapshot
use real locks instead of just semaphores, and other performance enhancements