Fixed unused typedef warnings from GCC 4.9; fixes #8877; fixes #8986
Removed use of "void" as property type to avoid errors in Clang; added static assertion to prevent this use in the future (it is broken anyway)