Can you add a spine bone to an existing (deformed and animated) character rig without repainting weights and having to redo old animations
Does this work for adding bones along the chain such as adding a new
spine bone or can you only add to the end of the chain such as adding
fingers at the end of an arm?

What makes bones into a chain is parenting.  So you can make a bone and then change the parenting of other bones so that, now, that new bone is sandwiched in.
An alternative is to use the subdivide operation on a bone, which splits an existing bone in two, and leaves any children parented to the new bone created (which is parented to the original bone that was subdivided.)
There are a lot of different ways to make bones, and a lot of different ways to edit them.  Anything you can make in an armature, you can edit in-- after all, editing a single bone armature is how you make complicated ones!

And once done do you have to repaint the skinning and redo all old
animations?

In general, yes.  Any new bones you make won't deform any mesh until they have weights.  Any new bones you make won't be animated until you animate them.
There are plenty of exceptions.  A bone that changes parenting can affect the mesh indirectly, even without weights.  A bone that is part of an IK chain will be animated by the IK target, even if it doesn't have any animation data itself.

If this is not possible by default is there a plugin that makes it
possible?

What you're asking about is extraordinarily general.  Are there plugins that weight bones?  Sure-- so does out-of-the-box autoweights!  Are there plugins that generate animation?  Sure-- so does out-of-the-box rigid body physics!  But you probably have some particular kind of animation and weighting in mind.  There is no single way to animate or weight new bones, so there is no single, press-one-button plugin to animate and weight new bones.