added aggregate projection operator

This pull request simply just allows you to specify the fields needed for the joining collection. I couldn't get the nested join to work because I didn't have the array indices on hand needed to put the `rightRecord` at the correct index.

Use it like a normal projection:
````
join({
  joinCollection: collection,
  leftKeys: ['keys'],
  rightKeys: ['keys'],
  newKey: 'newKey',
  projection: { 'column1': 1, 'column2': 0 }
})
````