Support port URI template variables

This commit makes it possible to specify port with an URI template variable.

For example :
RestTemplate restTemplate = new RestTemplate();
restTemplate.getForObject("http://localhost:{port}/resource", String.class, 8080);

Issue: SPR-12123
Update port related code in UriComponentsBuilder

Use null to indicate no port has been provided.
Raise exception when port has not been expanded.

Issue: SPR-12123
Update Javadoc for AssertThrows
Discontinue use of deprecated AssertThrows

This commit refactors ReflectionTestUtilsTests so that it no longer uses
the deprecated AssertThrows class.