Moved default behaviour from SingleDrawable and GPUVertexData into the new classes, DefaultSingleDrawable and DefaultGPUVertexData. Removed default behaviour from ShaderController::DisableCurrentProgramAttributes(). Now, ShaderPrograms keep track of their enabled attributes and disable them accordingly. Made it so Mesh, LineSegmentCollection, and DrawablePointCloud derive from DefaultSingleDrawable. Removed the fake copy constructor and assignment operator from SingleDrawable. Now, any class that derives from it is not copy constructible or copy assignable (but it is still moveable). This made it so Mesh and LineSegmentCollection had to define their own CopyFrom methods.