Some reworking of our spinner support widget [ci skip].

It now only has a spinner widget when really necessary, i.e. when one
needs to be shown.