Correct typo in error message
Rename thr_vec macro to thr_str and othread_t vec field to str

  This is done mainly to better self describe that the vector is
not expected to be set to a type that does not match the language
string_t type.
Remove the per vm register vector object

  Generic vector operations should be implemented using a different
approach.
Correct load of return value of builtins returning doubles.
Correct branch generation for multilevel andand and oror

  The logic was not properly handling long nesting of && and || and
on those cases could only do the "right thing" for the first and
last test.
Add initial code to support vector operations.

  This change adds initial implementation of a "fast path" for
operations on float and double vectors. Note that while the language
(at least currently) really only supports matrices as vectors of
vectors, this commit adds matrix support for packed data; it
should be extended to also "understand" matrices as vectors of
vectors.

  In a later commit code (in progress) to handle operators and mixed
types (as well as integers and bignums) should be added, but that should
be used with caution as most operations will leave data to be garbage
collected, while the code in this commit creates framework for limited
but fast and gc free operations.

  The new namespaces v2f, v2d, v3f, v3d, v4f, v4d, m2f, m2d, m3f, m3d,
m4f, and m4d describe what operands it expect, i.e. "v" stands for
vector, "m" for matrix, 2, 3, and 4 stands for 2,3,4 element vectors,
or 2,3,4 square matrices; f and d stands for float32 and float64.