This function takes a key and returns an iterator that iterates over the values associated with the key.
If the value_iter_ptr argument is non-NULL, then the location that it refers to will be set to NULL if an error is returned.
Memory Concerns: At the end of usage of value_iter_ptr, the caller must call am_map_value_iter_destroy with the iterators pointer.