Added convenience methods to `Uri`

1. added test case for `Uri` to check a query parameter without value followed by fragment
2. changed interpretation of a query parameter without value
3. added convenience methods to `Uri` to manipulate parameters in query string more easily
Is the 'maybe' correct in the doc string? (sorry for the nitpicking)