Fix the iterator mode in ProgressBar to call update before returning.

The ProgressBar class doesn't properly operate as an iterator. In the current implementation, ``return`` is called in the ``try/except`` block, and so ``self.update`` is never called. This is odd behavior to me, as I would expect that in python, things in the ``else`` part of a ``try/except`` statement should be called anyways, but I guess not! See <http://stackoverflow.com/questions/7442133/try-else-with-return-in-try-block> and <http://docs.python.org/2/reference/compound_stmts.html#the-try-statement>