CDK-472: Add Datasets.URIBuilder

Adds an API for programatic building of Dataset/View URIs.

URIPattern implementation uses LinkedHashMap to preserve order of
options such that pattern.construct() will produce query params in a
predictable order.
Yep, sorry, my IDE settings are off.   I will work to get that corrected.