Throw more specific exception when 0 rows found

Applications will want to handle a 0-row result differently from an
n-row result from a call to `Collection::one()`.

E.g. a 0-row result might be rethrown as an HTTP 404 error, while an
n-row result might indicate a data integrity error (i.e. an HTTP
500 error).

Semantically I don't think `NotFoundException` extends
`ConstraintException`, but it's implemented this way for backwards
compatibility.
Merge pull request #83 from lox/not-found-exception

Throw more specific exception when 0 rows found