AnimatedModel: Allow setting a custom collision model

As the player origins are offset when running the swim animation
for instance, we need to set a custom collision shape that
properly follows the 3D model's body. To do that, we generate
an invisible box that follows the main body bone of the player
model, that has the real model Geometry pointer as UserData.

InputActionListener can then return the actual model geometry
when it detects the UserData key.