Multiple changes

- The SafeAutoBind<Texture> are now also tied to a specific
  texture unit so when the texture is used the texture unit is automatically
  made active and the texture is automatically bound to the specified target.
- Added the reference and const_reference typedefs to Array.