Support for filtering on query set data

Add add chainable filtering over query set. Multiple filters are
combined into one. This is a simpler but more powerful api than a
typical SQL based ORM `WHERE` clause. Somthing simplere but with
stripped down features is upcoming.

Signed-off-by: Rohan Jain <crodjer@gmail.com>
Add a where based filter for query sets

Supports a where based interface, with only AND. Again, multiple wheres
result in a single iteration. Example queries:

    source.query(function (err, querySet) {
      querySet.where({age: 23})
        .execute(function (err, models) {
          expect(models.length).toBe(expected.length);

          Utils.each(models, function(model, index) {
            expect(model).toEqual(expected[index]);
          });
        });
    });

    source.query(function (err, querySet) {
      querySet.where('age', 23)
        .execute(function (err, models) {
          expect(models.length).toBe(expected.length);

          Utils.each(models, function(model, index) {
            expect(model).toEqual(expected[index]);
          });
        });
    });

    source.query(function (err, querySet) {
      querySet.where()
        .execute(function (err, models) {
          expect(models.length).toBe(0);

          Utils.each(models, function(model, index) {
            expect(model).toEqual(expected[index]);
          });
        });
    });