Missing typeinfo header

Clang is complaining about typeinfo header.
Create two versions of the function

Created two versions of the function, one for signed and another
one for unsigned. The reason of that is because clang is complaining
about the check of >= 0 that will always be false when unsigned.
Changed the size_t to be const

Changed thee CHUNK to be static const.
Missed builtin functions on Clang

Mapped the missed builtin functions to the clang mm functions.
Wrong use of unsigned variable

1- loop will never stop since it is checking >= 0 and the variable
   is unsigned. Changed the code to be signed.

2- Using the wrong capacity attribute. It was checking the method
   instead of the capacity_ attribute
Using the wrong type.

Changed the int type to be auto.
Clang complaining about assembly instruction

Changed the assembly instruction to use 32 bits variable
Added BASE_DIR for tests

Tests are now supporting a BASE_DIR define, that will tell to the
project the absolute application directory location.
Clang assembly not working with double variable

Changed the code to cast the double variable to uint64_t. It must
work on all cases, because according to IEEE 754 a double precision
binary floating-point format is binary64.