Remove empty query params from many filters.

Before this PR, clicking on filters like `sort` at the issues index would give a URL with many empty parameters like:

    assignee_id=&label_name=&milestone_id=&scope=all&sort=newest&state=opened

Now, `assignee_id=&label_name=&milestone_id=` only show if explicitly set, so the URL would be:

    scope=all&sort=oldest&state=opened

The change should affect issues and merge request in indexes, group and global searches.

This works because we were using the built-in helper `url_for`, which removes keys which have nil values from params, while before params was being built with `to_params` which does not.

`scope` and `state` should also be removed if not set, but implementation there is more delicate because those params are always being set from controller and used in the logic as in https://github.com/gitlabhq/gitlabhq/blob/0f12e051c072521460fadfce2cec4e9768bc35ba/app/controllers/projects/issues_controller.rb#L131
Surrounding space missing in default value assignment.