Add explanations for all AllocationDeciders

This adds explanations for all of the allocation deciders for their `yes` and `no` answers. It should help when using the reroute API to explain why a shard can or cannot be moved to a different node.

I would like to move to a full explain-like API for shard allocation, but I wanted to submit this as a separate PR since it can easily be backported to all branches to be useful without any breaking changes.

I tried to keep the explanations short but distinct.

Related to #4380 and #2483