Let conditions be specified in options hash

This lets you choose to call it as

``` ruby
ModelIterator.new(Model, 'public = ?', true, :limit => 10)
```

or

``` ruby
ModelIterator.new(Model, :limit => 10, :conditions => ['public = ?', true])
```

`:conditions` can be specified as an Array or String, and it will take precedence over what's given in the arguments.