brcm47xx: various fixes and code cleanups for irq code

This is based on a patch send by Nathan Hintz <nlhintz@hotmail.com>


git-svn-id: svn://svn.openwrt.org/openwrt/trunk@34997 3c298f89-4303-0410-b956-a3cf2f4a3e73