CDK-501: Add view URIs

This adds view URIs using the syntax suggested on the CDK-501 page. Both Range and Set (In) predicates are handled specially. Other predicates should now implement RegisteredPredicate and register with that class. The tests have a good example of registering a predicate. Non-primitive values are base64 encoded, and string representations are URL-safe.

This could still use some additional testing on the View to URI and URI to View translation.
instanceof Dataset is redundant -- why not just a single instanceof FilesystemDataset check?