Is there a way to animate the pivot point of a bone?
This is an idea I have but I haven't tested it.  Hope it can be used.

Set up a chain of elongated, non-renderable cubes in the same spaces as the bones. Move their pivot points to the correct end, and link them so they're like a chain of bones.  

Now you can use a Child Of constraint on the relevant cube to parent it to an Empty. Set Influence to zero until you're ready to switch to the new pivot point/Empty. Do this 3 times after moving the Empties to where you need the 3 pivot points. You need a 4th Child Of constraint to have the next cube/bone in the chain as the target/parent. You can then animate Influence to switch between pivot points.  When you want to rotate a bone around a different pivot point, you rotate the Empty.  

The reason for leaving the bones there is you need them for skinning purposes.  

If one could use a Child Of constraint directly on a bone that'd be easier, but as far as I can see it's a mesh-only constraint.

You could try the above if the bone whose pivot point you want to animate is at the head of the hierarchy. Otherwise the you'll rip the chain apart.