Organized program.js, added support for all uniform types.

Also integrated Program with playback.clearWebGlObjects and
setup Program to detach and delete shaders after linking.
Removed excess type annotations, organized createVariant_.