Map based Adsdimension demo

A Map based implementation Adsdimensions Demo, following parts are implemented
- A generic mechanism to specify schema for input. We still need to come up with a way to send the schema to
  DimensionComputation and HDSOutOperator. Sasha is working on that.
- A Map based aggregator to be used with DimensionComputation.
- A Serializer which serializes keys and values to be used with HDS, and reconstruct these from byte array.
- A QueryOperator to retrives data from cache as well HDS for give key.
- A sample Demo Application.

Sample Demo application is in working state.
Should be replaced by: 

{
    // Keys for dimensional computation.  If dimensions relationship is undefined, 
    // all permutation of keys are used to generate the dimensional aggregates.
    // Data types supported: int, long, float, double 
    "keys": {"publisherId":"int", "advertiserId":"int", "adUnit":"int"},

    // OPTIONAL specification for dimensional combinations
    // If omitted, all combinations of keys are grouped by MINUTE
    // Supported time groupings: MINUTE, HOUR, DAY
    "dimensions": ["MINUTE:publisherId:advertiserId", "HOUR:advertiserId:adUnit"],

    // Fields to aggregate with matching operation types and data types
    // Possible operations include: SUM, AVG, MIN, MAX
    // Data types supported: int, long, float, double 
    "aggregates": { "clicks": "SUM:long", "price": "SUM:long" },

    // Name of the timestamp fields with time specified in milliseconds ( since Jan 1, 1970 GMT )
    // Data type is implied to be: long
    "time": "timestamp",
}