Replace cx/y/z/w with a vec4_t in mat4_multiply.

This is mostly just because it makes more sense at first glance. At
least to me, anyway. Easier to treat a row vector as a vector if it's
actually a vector.
Version 1.3.1

Changes:

- Updated README.
- Tweaked mat4_multiply in mat4.c
Fix exception strings where method names were accidentally typenames.

This particular problem is mostly because, in the process of getting
rid of a lot of preprocessor stuff, I used snippets to build the new
code -- so, it was basically a preprocessor but in the editor. Upside:
made it really easy to get rid of the preprocessor. Downside: was still
more or less the same as using a preprocessor. So, things needed a lot
of tweaking.
Fix call sequences for Vec3#multiply_vec3 and Vec4#multiply_vec4
Add vec2 implementation.

This is basically vec4 converted to vec2, which is convenient since
vec4 is just vec3 plus a component and minus cross_product.
Add vec2 bindings.

Vec2Array bindings next.
Vec2Array bindings.
Fix acceptable multiply arguments for Vec3/Vec4.
Add Vec2 script.
Add Vec2 Ruby sources.
Alias dup to clone for arrays.
Add vec2 support to other init functions.

Also update call sequences in doc comments.
Add to_vec2/3/4/, to_quat for quat and vector types, to_mat3/4 for quat

These are just conversion and do not provide output arguments.
Add to_quat to matrices.
Remove classname from exception strings.
Fix acceptable types for Mat3#set/initialize
Version 1.4.0

- Add Snow::Vec2 (has more or less the same method as a Vec4 but with
  only two components). Also, multiply_vec2 instead of multiply_vec4.

- Add Snow::Vec2Array.

- Swizzles work with Vec2 through Vec4/Quat.

- Typed array #dup is now aliased as #clone.

- Added to_vec2/3/4 and to_quat for vectors and quaternions

- Add to_mat3/4 to quaternion

- Add to_quat to mat3/4

- When calling set with a type that has fewer components than the
  receiver, extraneous values are initialized to their possible
  identity values or zeroed, depending on the type. Docs should reflect
  the values you'll get for components not provided by the assigned
  type.

- Update version constant because I forgot to do that last time. It
  happens when you're not used to providing a version constant.
Add Vec2 to readme.
Document all gem install options for the extension.
Note where ri/rdoc documentation is for some methods.