Stubbed out ydb_aggr_node module.
Initialized internal state of aggregate node.
Defined helper function to extact values from a tuple.

Needs to know the schema, or at least the index locations referred to
by the column names.
Reduced case of receiving diffs to when receiving list of tuples.

This will need to be changed, as whne a diff message is received, the
node should send an ets table to its subscribers, whereas when a tuple
is received, the node should send a tuple to its subscribers.
Added more initialization options to aggr_node module.

Now can specify the result name and type of the aggregate.

Create ETS table for synopsis by default.
Defined synopsis helper functions.

Includes the following.
  (1) get_partials/2
  (2) add_partial/3
  (3) remove_partial/3
Defined function to compute aggregate over all partial results.
Created convenience functions to send messages to subscribers.

Defined send_tuples/2 and send_diffs/2.
Added support for receiving tuples and diffs.

Computes a new aggregate for each type and notifies its subscribers.
Made the atom `undefined' a special return value.

When the aggregate function produces a tuple with an undefined value,
it is not sent to the subscribers of the plan node.
Added support for extracting timestamp attribute.

Specified by the atom `$timestamp' in the list of column names.

Necessary for privacy-preserving operators that need to know the
relative time.
Added support for incremental algorithms.

Specifying the option `{incremental, true}' allows the partial result
function to receive the history currently stored in the ETS table.
Merge pull request #1 from visemet/aggr_node

Implemented a generic aggregate node.