Added initial implementation (or wrapper) of the threading library.
It's rather basic, but should work for most of the tasks.
Unfortunately, spinlock implementation relies on GCC/Clang compiler
built-ins (or in-worst-case-scenario on Win32 - InterlockExchange).
In the future, I should revisit this code and fix/reimplement some stuff
(or add support for Windows XP).
Added some basic geometric primitives such as planes, rays, segments
and lines (plus some extra functions like xProject, xBarycentric, Lerpf),
as well as some intersection tests between them.
Additionally, I split massive math test into smaller ones and tweaked
unit test library (testing no longer stops after first failure).
After a while I felt that putting underscores between words was not the
best solution, so I changed the underscores to capital letters.
Fixed consistency bug between POSIX/Win32 platform in BH_FileOpen.
Removed definitions for math types (vector, matrix, etc.) due to
potential aliasing issues.
After some testing, I decided to ditch the DirectX approach of writing
math functions.
Additionally, I added unit tests (with reference wxMaxima calculations)
for most math functions and fixed several bugs along the way.