attrib_location is a GLint not GLuint
check frag/attrib/uniform locations for values < 0
Also allow passing opengl name directly to uniform* methods