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]);
          });
        });
    });
Utils: Test fallback filter; Increase coverage

 - Define fallback filter separately, so that it is testable.
 - Add more entries in sort tests to cover all clauses