Make ShardRouting and UnassignedInfo immutable (elastic#17821) …
This makes defensive copying of ShardRouting objects obsolete whenever we do a reroute and trashes less objects.