Correctly handle missing UniformAttribute

Fix bug in UniformAttribute.__str__. Also mimic OpenGL behaviour by
treating setting a missing uniform as a no-op and raising an error on
getting it's value.
Add initial texture support (immutable only)