Projections fix for when 'allow_unknown' is True.

When 'allow_unknown' is True:

- Client projections don't crash.
- Datasource projections are not ignored.

Closes #497.