Implements a ViewerDelegateComponent / ViewportLayer combo that extends a
Viewer, allowing it to render locations of the type "ball". These are similar
to a "sphere" location, in which they have a "geometry.radius" attribute that
defines its radius, and can contain an "xform" attribute that defines its
transform.

In order to add these to an existing Viewer tab, place the
python/BallViewerPluginExtension.py Python script into a
KATANA_RESOURCES/UIPlugins directory. This will automatically register it
with any Viewer API-based viewers.

Then create locations of the type "ball" (using a LocationCreate node) with a
DoubleAttribute called "geometry.radius" (using an AttributeSet node) and some
transform (using Transform3D - setting "makeInteractive" to "Yes").

Now these locations will appear in the Viewport. They can be manipulated using
any of the transform manipulators and selected using a marquee or a click. A
marquee selection should be able to select also other location types and also
occluded balls (deep picking). The Ctrl and Shift modifiers should work as
expected when picking the balls.
