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.
Please use L instead of l throughout as it's very easy to misread.