Adding ability to specify blocking status for commands

along with event dependencies and notify event

Currently everything is still just blocking for the final reads, but I
think maybe this will let the global CG kernel be faster by not blocking
on the rLength read and checking it when we get the result instead