dispatcher: fix several issues with empty destination sets

Upon (re)load, a dispatching set may be empty if none of its destinations
can be resolved. This patch fixes a couple of crashes which are directly
related to empty destination sets:

    * fix a bug in reindex_dests() where a single bogus destination
      would be allocated for each empty set
    * prevent ds_select_dst() from routing to empty sets

(cherry picked from commit 127b456a874499b6295008425144ca29b5e69d75)