Session clients required the list of hashes from a merge() to perform
various operations based on the messages that were accepted. This
updates `merge()` to return a vector of accepted hashes.
For the C API, this returns a config_string_list* pointer that needs to
be freed, but contains all the good hashes (the same way
current_hashes() works).