Introduce Saber.QuerySet

QuerySet will be a chainable object, which a data source provides,
after processing. The API looks like:

    var source = new Saber.DataSource(data, schema);
    source.query(function (err, querySet) {
      /* Do something (filter, sort, aggregate etc) with the querySet
         In future, it can be like:
         querySet.where(...).sort(...).execute();
      */
      querySet.execute(function(err, models) {
         // I got the final models, use that data
      });
    });

TODO:

 - Add separate tests for fields, query-set

Signed-off-by: Rohan Jain <crodjer@gmail.com>