Enforce multiple-of-two sizes for Texture update and creation
Enforce multiple-of-two sizes for Texture update and creation

* SDL assumes the pitch, width and height of textures and update
  rectangles are even for planar YUV formats.
* Since the U and V components are basically half the width and height
  of the Y component, this limitation makes sense.
* Unfortunately, SDL doesn't perform this check for us. It's crucial
  that we guarantee this for `rust-sdl2` because array slice lengths
  must be predictable and derivable.

See issue #334

crumblingstatue/rust-sdl2,bfops/rust-sdl2,beni55/rust-sdl2,Rust-SDL2/rust-sdl2,Cobrand/rust-sdl2,wilsoniya/rust-sdl2,AngryLawyer/rust-sdl2,Cobrand/rust-sdl2,Cobrand/rust-sdl2,tempbottle/rust-sdl2,oldmanmike/rust-sdl2,bvssvni/rust-sdl2,vadixidav/rust-sdl2,inrustwetrust/rust-sdl2,Rust-SDL2/rust-sdl2,Rust-SDL2/rust-sdl2,nukep/rust-sdl2,caldwell/rust-sdl2,PistonDevelopers/rust-sdl2