Clean up dynamics API:
- Dynamics quantities are computed using dirty flags
- Dynamics quantities are not computed for zero degree-of-freedom skeleton
- Gravity is stored in skeleton to calculate gravity force vector
- Timestep is stored in skeleton to apply implicit joint damping force