Added warn.h

Adding warnings to help find unintentional mistakes and such. Warning level determines which ones appear, all off by default for right now.