ResultSet::getIterator() tidied.

* Whitespace,
* duplicate semicolon,
* EmptyIterator does not need empty array passed to constructor.
ResultIterator::seek() throws OutOfBoundsException for negative offset.

The offset is ultimately passed to mysqli_stmt::data_seek() which does
not permit negative offset:

"Must be between zero and the total number of rows minus one."
- http://php.net/manual/en/mysqli-stmt.data-seek.php

Technically that statement is unclear whether -1 is permitted for a
result set with zero rows. However this user-comment from PHP manual
suggests it'd be a bad idea to try:

> Although the documentation says you must provide a number between 0 and
> count - 1, you can actually supply a negative number, which appears to
> be cast to positive (such as in abs()).

- http://php.net/manual/en/mysqli-stmt.data-seek.php#106640
  (phpnet at stuffonmylaptop dot com)
Collection::last() correctly throws ConstraintException.

Previously, for an empty collection, last() would return an empty record
instead of throwing an exception.

This was because `$this->count() - 1` results in `-1`, which was not
handled correctly by the seekable iterators.
Collection first() and last() throw NotFoundException instead.

Previously they threw ConstraintException, although last() on an empty
set actually threw no exception due to a negative offset bug, fixed
separately.
CollectionTest::testFirstOnEmptyCollection
Merge pull request #123 from pda/collection-last-handles-zero-results

Collection::last() handles empty results