PickId refactoring / cleanup.

NOTE: this is a pull request into @pjcozzi's commandPassState branch.  @pjcozzi, let me know if you think I've gone too far here, and which of these changes seem relevant for CHANGES.md.

* pickObjects is now per-context instead of global.
* Color now has toRgba/fromRgba methods to convert to/from 32-bit RGBA values.
* pickObjects is now indexed by RGBA numeric color values.
* PickId now has a single `color` property of type Color.
* Removed use of "unnormalized" (i.e. invalid) values in Color instances.
* Context.getObjectByPickId renamed to getObjectByPickColor.