Fix Collection::count() return type documentation
Add docblocks to Expr methods (mostly copied from Builder)
Add array type-hint to Builder and Expr::all()
Don't document string argument for Builder and Expr::type()

This can be removed in 2.0. It's currently a bit clumsy as the names for some of these types are arbitrary. It would be preferable to use constants.
Query::getIterator() should not execute if an exception is guaranteed

Changed to avoid calling execute() and throw BadMethodCallException immediately if the query type is not documented as returning an Iterator. If the query type should return an Iterator, we execute it and then throw UnexpectedValueException if it does not.
Deprecate Query::iterate() alias in favor of getIterator()
Update references to IteratorAggregate interface methods in Query