Query parameters validation (generic implementation)

As specified in [Hapi](http://hapijs.com/api#route-options), `params` is used for path parameters, and `query` for query parameters.

An alternative implementation, less generic but slightly simpler, is opened in #12. Choose whichever you prefer.