add BufferedOutput

Extracts the queuing functionality out of TcpOutput.go into a general purpose lib for use in any output module