Const correctness [there is some crazy stuff going on]

Hello dear OTP team
Started putting const everywhere today, for greater goodness, but afraid I'm possibly breaking C API and other horrors may also happen. Please advise, if this is a good idea in general (I believe it is), and what should I watch out for (to not break good stuff).

This is a part of initiative to satiate Clang at maximum warning level. Building `master` gives ~11k warnings with  -Wincompatible-pointer-types-discards-qualifiers on Clang.

This is NOT well tested and NOT ready for merge.