Add ConcurrencyPool

Simple interface for controlling concurrency for an action.
Primarily just a wrapper around a channel, but also avoids writing
to the channel after closing.