Jersey 2469

As UriBuilder spec defines, query parameters should be encoded using application/x-www-form-urlencoded rules (https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/javax/ws/rs/core/UriBuilder.html).

Changed UriComponent to conform to UriBuilder spec, making query parameter to be encoded correctly on three methods of UriBuilder (queryParam(...), replaceQueryParam(...), replaceQuery(...)).

Added new unit test to verify correct encoding of special characters, and adjust existent test to expect values encoded in query string. 

This set is expected to be encoded when used in query string: ! # $ & ' ( ) * + , / : ; = ? @ [ ];
 as defined in (http://en.wikipedia.org/wiki/Percent-encoding).

Check (https://java.net/jira/browse/JERSEY-2469 and https://java.net/projects/jersey/lists/users/archive/2014-04/message/13).
It's reasonable to go that path. The pull request can be drop for the moment (the changes are not that difficult to recreate).

Just to point out, note that both the *URLEncoder* on the jdk and the *UriBuilder* on JAX-RS specs talk about the same encoding (and even have the same link to the w3c site),  but the behavior is different. 

Given this, I think that, as you said, an improvement on JAX-RS spec on this should happen before any RI change, since there are more than one interpretations (namely the way *URLEncoder* does it and the way *UriBuilder* RI does it).

I'll close the pull request. Let me know if this changes in the future and I'll be happy to help.