title: feed data into a tf.contrib.data.Dataset like a queue
body: <p>About the <code>tf.contrib.data.Dataset</code> (from TensorFlow 1.2, see <a href="https://www.tensorflow.org/versions/r1.2/api_docs/python/tf/contrib/data" rel="noreferrer">here</a> and <a href="https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/data/README.md" rel="noreferrer">here</a>) usage:
  The way how to get data doesn't really fit any way how I get the data usually. In my case, I have a thread and I receive data there and I don't know in advance when it will end but I see when it ends. Then I wait until I processed all the buffers and then I have finished one epoch. How can I get this logic with the <code>Dataset</code>?</p>
  
  <p>Note that I prefer the <code>Dataset</code> interface over the <code>QueueBase</code> interface because it gives me the iterator interface which I can reinitialize and even reset to a different <code>Dataset</code>. This is more powerful compared to queues which cannot be reopened currently after they are closed (see <a href="https://stackoverflow.com/questions/41187745/tensorflow-how-can-i-evaluate-a-validation-data-queue-multiple-times-during-tra">here</a> and <a href="https://github.com/tensorflow/tensorflow/issues/4535" rel="noreferrer">here</a>).</p>
  
  <p>Maybe a similar question, or the same question: How can I wrap around a <code>Dataset</code> over a queue? I have some thread with reads some data from somewhere and which can feed it and queue it somehow. How do I get the data into the <code>Dataset</code>? I could repeat some dummy tensor infinite times and then use <code>map</code> to just return my <code>queue.dequeue()</code> but that really only gets me back to all the original problems with the queue, i.e. how to reopen the queue.</p>