Add CMake support.
Add a private stdbool header.
Compile all source files as c++, for Visual Studio
Add casts to all the malloc and realloc calls to make it work for C++.
Remove a double const
Fix an ambiguous abs() call for C++. May also fix a real bug because why was abs being called on unsigned values?