Use union types instead of overloading for buffer[Sub]Data and tex[Sub]Image2D.

This fixes https://www.khronos.org/bugzilla/show_bug.cgi?id=1172 .
Added BufferDataSource typedef on suggestion from Brandon Jones.
Merge pull request #562 from kenrussell/union-types

Use union types instead of overloading for buffer[Sub]Data and tex[Sub]I...