Add field for current value to MQTTIterator
Instead of keeping an element always in the buffer, the iterator has got
a separate field to store the currently referred value. The buffer is
used to buffer further incoming values.
This scheme better matches a general concurrent queue interface, where
enqueue and dequeue operations are available but peeking the front
element of the queue without removing it might not be possible.