If we try to pull a non-existing tag, Tags._get will return None and the
appended .decode() command will fail. So make sure that there is a tag to
be fetched before fetching it.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
     def next(self):
         if self._tags is None:
             raise NotmuchError(STATUS.NOT_INITIALIZED)
-        # No need to call nmlib.notmuch_tags_valid(self._tags);
-        # Tags._get safely returns None, if there is no more valid tag.
-        tag = Tags._get(self._tags).decode('utf-8')
-        if tag is None:
+        if not nmlib.notmuch_tags_valid(self._tags):
             self._tags = None
             raise StopIteration
+        tag = Tags._get(self._tags).decode('utf-8')
         nmlib.notmuch_tags_move_to_next(self._tags)
         return tag