1. Let 'isa<T>()' calls 'IsSameTypeId()' when T is final,
and we add 'final' mark to some final classes derived from Base;
2. Generate type id at compile time using constexpr hash function,
remove TypeIdManager and related code;
3. Add a tool script 'scripts/check_tid.sh' to check tid uniqueness;
4. Improve type search in 'proto_exporter.cc' and 'convert_utils_py.cc';
5. Add some missed MS_DECLARE_PARENT;
6. Ensure calls of 'parent_t::IsFromTypeId()' are all inlined.
1. Add compact_set and use it for node_users;
2. Optimize OrderedMap for shared_ptr;
3. Optimize OrderedSet for shared_ptr;
4. Use better hash for pointer type;
5. Fix a bug about 'erase' in session_basic.cc.