Refactor on_interrupt

By adding an extra argument, all separate implementations could be
refactored into one routine.  No new calling overhead is introduced,
except for TINYX4 (which has only one PCIMSK) and TINYX61 (which has two
PCIMSKs but only one ISR vector).

This also uncovered copy and paste errors in the TINYX61 version:
(1) state[1] was never updated, always used state[0]
(2) PCInt8..15 on_interrupt handlers were never called, always called
PCInt0..7 handlers.