add field projection for collections

This feature allows to create "views" of collections, or more
precisely decide what fields should or should not be returned
using a projection.

More info :
http://docs.mongodb.org/manual/reference/glossary/#term-projection