Add basic calculation methods: sum, minimum, maximum, average

E.g.,

  CGFloat minimumAge = [Person minimum:@"age"];
  CGFloat maximumAge = [Person maximum:@"age"];
  CGFloat averageAge = [Person average:@"age"];

  // Assuming purchases is a CoreDataRelation
  CGFloat lifetimeValue = [[customer purchases] sum:@"total"];

By default, a calculation is done with expressions to be efficient,
memory- and otherwise: objects will not be loaded from the database and
the fetch will run the calculation directly on the store.

In the case where the fetched objects are already in memory, the
calculation will be run against them directly. This should, for the most
part, be efficient, but we may want to revisit this in the future and
always run calculations via expression.

Signed-off-by: Stephen Celis <stephen@stephencelis.com>
Add "select" method to pluck values in dictionary form

This allows us to fetch specific values easily, e.g.:

  [Person select:@"firstName"]; // @[@{@"firstName": @"Stephen"}, ...];

We may want to revisit the naming here.

Signed-off-by: Stephen Celis <stephen@stephencelis.com>