Numerous model/Attribute changes.

This patch removes the auto-allocation of a Buffer instance from the
Mesh base class. It also fixes a bug wherein the Collada models were
using vertices as normals. Some functionality is broken up into EncDec
to be reused with other Attributes.
Fixes a bug in ImageSurface constructor.
Buffer Cython objects can be RW.
Adds EncDec/SBK support for Textures.
Fixes State bugs.

This patch fixes some bad assumptions I made about how State should be
used/manipulated, and adds a method "get_active_attributes()" that a
Program instance can use to re-enable all previously enabled Uniforms
that existed before the new Program was enabled.