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.
In the context of be10713f6803c9ee33b0f169dd91d8bffc889752, should this have been updated to return empty string?