Bigfixes and improvements for query params processing

This includes a critical bugfix (the first one in a list below) for #682 and some more improvements:

* `Dispatcher::dispatch` now checks if `options.query` hash was changed. I forgot this check initially, so if you navigate between routes differ only in query parameters, nothing will happen :-(
* `Route::reverse` now won't add a ? symbol at the end of a returned url if you pass an empty object as a `query` parameter (second one)
* `utils.queryParams.stringify` will now ignore `undefined` and `null` values

IMO, we should release 0.11.1 ASAP