Attempt to provide a buffered producer.

The aim is to use an input iterator that will monitor the queue size.
If the queue size becomes to big, then the producer will stop putting
items on the queue until the queue size falls to a certain level.
Merge pull request #5 from EDITD/buffered_producer

Attempt to provide a buffered producer.