Fix post-hoc matching when projecting fields

Before this, the projection would happen before the post-hoc matching
stage. The problem there was that the matcher would end up operating
on the projected revision. If the projection removed a field the
post-hoc matcher was checking, the revision would be rejected.

As a side effect, this removes the overhead of projecting every
document, regardless of skip, limit and matching.

Fixes #39.