[misc] bool is a reserved C++ keyword with an undefined size

* MS's BOOL and C++'s bool are not interchangeable => use BOOL for all public interfaces
* Also add guards for non public bool usage, in case someone uses a C++ compiler
* Closes #20
* Closes #21