Add -Wshadow

Fixed most of the warnings, except for Windows and Android, so adding -Wshadow to Makefile seems warranted. Remaining warnings require more consideration than I have time for at the moment.