One()/Next() : Unable to detect empty results

```
type Data struct {
  foo int
}

v := Data{}
r.Table("table").Get("doesnotexist").Run(session).One(&v)
```
nothing tells me if the row exists or not

Wouldn't it be better for One (+ Scan) to return an error in this case ?
```
err := r.Table("table").Get("doesnotexist").Run(session).One(&v)
if _, ok := err.(ErrNullResult); ok {
  // was not found, do something
}
``` 

```
rows := r.Table("table").Get("doesnotexist").Run(session)
rows.Next()
```
returns true, even if there is nothing in the DB
one would expect to get false