Do not use recursive type hashing when writing out function types
When the abixml writer emits function types, it puts function
types that are referenced by pointers or references into a map on the
side. Unfortunately, that map hashes types by recursively calculating
a progressive hash value. That is dog slow and we avoid that
throughout the code base.
This patch changes that to use the numerical values of the canonical
type pointer of the function type as a hash, making abixml fast again,
again on big library as libmozjs.so.
* src/abg-writer.cc (typedef fn_shared_ptr_map): Remove.
(write_context::m_referenced_fntypes_map): Change the type of this
into type_ptr_map.
(write_context::{record_fntype_as_referenced,
fntype_is_referenced}): Use the pointer value of the canonical
type of the referenced type as key for the map.