Provide control over URI-parsing strictness
Number of changes to URI code

* Turn example into stricter unit test.
* Use boost::optional for optional value types.
* Use std::numeric_limits
Show how to handle custom URI parameters