Sorry again there are no docs. I pointed you to the class so you could take a look, but I'm happy to answer more specific questions if something is not clear. I should really write docs so I don't have to field questions, but I am anxious to get some editor features done. :tmi:
The multiple AnimationStates are applied each frame, one after another. You might want this if you are using multiple animations concurrently. Eg, you might separate the leg animations (standing, walking, running, etc) from the torso animations (idle, aim, shoot, etc) so you can mix and match. AnimationState uses "apply" (as described above) so keys applied by an AnimationState will overwrite any values from previously applied AnimationState. However, if an animation does not have keys for a value, that value is left unchanged. This allows you to apply two animations and as long as they don't key the same values, they won't stomp each other.
If SkeletonAnimation only had one AnimationState, you would have to subclass it and manage your own, second AnimationState. This is a bit clunky, so to better handle the case where you want to apply two AnimationStates, SkeletonAnimation keeps a list. You can specify the index in the methods. It starts at index 0. If you call addAnimationState then you can use index 1, etc.