Added projection aggregation operator

Select fields from the joining table using the `projection` field. Use it like a normal projection:

````
join({
   joinCollection: collection,
   leftKeys: [],
   rightKeys: [],
   newKey: '',
   projection: { 'column1: 1, 'column2': 0 }
````