Get the next idle connection. If there is no idle connection, will block until there is one. Optionally accepts a block. If a block is given, will execute the block and free up the connection afterwards.
[Validate]