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 modifier of mongodb, and support all use case of them
3. it should be able to use mongodb query modifiers when using 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' } }`