Commands & Events now use an operation queue and dispatch queue

- Asynchronous dispatching occurs using the operation queue
- Synchrounous dispatching occurs using a private dispatch queue
- Command & event queues are separate