Make sure bool will always have the same size in C and C++

There were an issues with data structures defined in headers
and being used by both C and C++ on systems with stdbool
unavailable.

This happened because bool in this case will be defined as
unsigned int, which is 4 bytes. But C++'s bool is only 1
byte and this lead to alignment issues.

Now bool is always 1 byte, also made sure there's no situation
like bool foo = BitField & BitFlag, which could give overflow
issues. Use (BitField & BitFlag) != 0 instead.

Fixes #35553: Compositor broken (Backdrop & Preview)

git-svn-id: https://svn.blender.org/svnroot/bf-blender/trunk/blender@57102 954f8c5b-7b00-dc11-b283-0030488c597c