Found a way!

I am sure it would be fairly simply to write a full add-on and I might just look into that as I wanted an excuse to try my hand at it.

but you can take a look at the script functions, noteably
SetBinding
SetBindingSpell
SetBindingClick
SetBindingItem
SetBindingMacro

so you could create a set of macro's to change your bindings back and forth, something like this.

Code:
/script SetBinding(1, ActionButton1, LeftButton)
/script SetBinding(2, ActionButton2, LeftButton)
/script SetBinding(3, ActionButton3, LeftButton)
then

Code:
/script SetBinding(i, ActionButton1, LeftButton)
/script SetBinding(o, ActionButton2, LeftButton)
/script SetBinding(p, ActionButton3, LeftButton)

then bind each macro where ya want it.