Return $this->andReturnValues(...), improve tests

* Instead of returning $this in
  andThrowExceptions(...), now returning the
  result of the call to
  $this->andReturnValues($exceptions)

* Tests improved to test that exceptions are
  thrown in correct order, that the correct
  number of exceptions are thrown, and that
  an exception is thrown if a non-object is passed
  as an array element to the method.