Unit Tests program now compiles on Linux, all tests passed.

Makefile generation is now automated with Premake.

The project's makefile is now more robust and handles all 4 builds of the library
(debug x86, release x86, debug x64, release x64) similarly to how it does on Windows.

Replaced std::cbegin and std::cend with std::begin and std::end in several unit tests

Due to odd compilation issues with G++ that would have required rewriting a great deal
of code in Point and Vector, Point and Vector no longer inherit from BasePoint. Instead,
they reimplement its functionality separately (automated with preprocessor macros at the moment).

Forward declarations for free functions were added beneath Matrix, Point, Vector, etc. to
fix a compilation error

In Menu.cpp, included a missing header file, <limits>,
and changed INT_MAX to std::numeric_limits< int >::max()

In TextColor.cpp fixed a missing reference to uint8 (rewrote as unsigned char)
and fixed an unsigned char cast (put parentheses around "unsigned char")