Support `send` and `send-off` methods for Agent

like clojure has. Currently Agent supports setting an executor on initialization which globally sets the agent instance to be suitable for non-blocking only or for blocking. It would be better to be able to choose the executor when sending a function to an agent.

`OneByOne` could be modified to ensure sequential execution of functions over two different executors.