[feat/precompile-class] feat: move type_caster_base.h non-template definitions to type_caster_base-inl.h (#6134)

* feat: move type_caster_base.h non-template definitions to type_caster_base-inl.h

Moves the free functions (type-info lookup and registration, instance
layout, isinstance_generic, cpp_conduit_method, type_info_description),
the loader_life_support members (the function-local thread_local stack
stays per-module in both modes), and the two heavy type_caster_generic
members (the type_info constructor and the main cast overload).
Templates, including load_impl<>, stay in the header.

Assisted-by: ClaudeCode:claude-fable-5

* fix: make gil.h self-contained for PyPy/GraalPy and silence -Wredundant-decls

gil.h evaluated PYBIND11_SIMPLE_GIL_MANAGEMENT before including common.h,
which defines it on PyPy/GraalPy. Every existing TU included common.h
first through pybind11.h, so this only surfaced when src/type_caster_base.cpp
reached gil.h directly. Also suppress GCC -Wredundant-decls for the
isinstance_generic declaration duplicated in pytypes.h.

Assisted-by: ClaudeCode:claude-fable-5
7 files changed