Fix Raspberry 3
Raspberry 3 uses 2-cell irq descriptions (both in Qemu and also was reported in #support). Initially IRQ parsing was written with 3-cell descriptions in mind but it happened to work with 2-cell as well; my refactoring made the parsing stricter and thus broke it. This fixes it back.
It also checks /soc/@ranges
(as found in Qemu's DTB) to map MMIO areas at CPU-visible addresses instead of bus-local.
Edited by Andrey Turkin