LayerManagerUserDataDestroy is a static function in Layers.h that we
only ever take a pointer to, to use it as a destruction function for
gfx::UserData. It's *possible* the compiler is smart enough to call it
directly, rather than through the function pointer stored in
gfx::UserData, but that seems highly unlikely. And
LayerManagerUserDataDestroy does a virtual call anyway, so it's not as
though it being inlined is particularly important.
All of this is to say that we don't need to define
LayerManagerUserDataDestroy in Layers.h; defining it out-of-line will be
just as effective. Defining it out-of-line also means that we don't
need the definition of LayerUserData anywhere in Layers.h, and we can
move LayerUserData to a separate header.