Raise ChannelError when no free channels left

Nothing fancy - just throw an exception that is actually helpful.