[core] Count messages loop and flood protection per channel, not globally

Also few tweaks to make loop protection a bit less frustrating for users.