core: lightweight string descriptor
render: Program and Shader are now separate (fix #43)