Updated and improved texture object implementation

Change-Id: I2196edb6bfeb78fed8468d79a7bccd88893aaa41