Create a generic vec<T, N> class
Create a generic vec<T, N> class

This prepares for having other vector sizes (e.g. byte8) support member
methods such as broadcast assignment.

Note the partial specialization for N=4, to have x,y,z,w members.

Bug: b/146224130
Change-Id: I09a341812ddfa14d247e94fd3f9345db951824ed
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/39554
Presubmit-Ready: Nicolas Capens <51edc787c30f24c4904e8ffbb5523c3a9f7a451d@google.com>
Reviewed-by: Ben Clayton <1f693eb7158dc33015048c09d6712f74dabddf79@google.com>
Kokoro-Presubmit: kokoro <2ac7b1f3fa578934c95181d4272be0d3bca00121@google.com>
Tested-by: Nicolas Capens <51edc787c30f24c4904e8ffbb5523c3a9f7a451d@google.com>

bkaradzic/SwiftShader,bkaradzic/SwiftShader,bkaradzic/SwiftShader,bkaradzic/SwiftShader,google/swiftshader,google/swiftshader,bkaradzic/SwiftShader,google/swiftshader