Refactor|Textures: Improved Textures implementation with Observers

This addresses most of the remaining API design shortcomings.