Rewrite `lib/query.index.js` with more structural code

I meet a few use cases that sails-mongo doesn't support, and I found that there is no easy way to fix them all in the old code. Hence I decide to rewrite criteria parsing functions once for all.

1. it should support Waterline Query Language
2. it should support all [Query Selectors of mongoDB](http://docs.mongodb.org/manual/reference/operator/query-modifier/), and support all use case of them
3. it should be able to use mongoDB Query Selectors within WQL, hence I can use `Model.find()` in most cases instead of using `Model.native()`
4. it should support criteria on attributes of `objectid` type, e.g.: `{ id: { '>': '5395d0cdea4e4ced2e84886b' } }`