Improve interface for forward kinematics

* Rename functions pertain to generalized coordinate
* Add setters for configurations, generalized velocities, and generalized accelerations to `Skeleton` and `Joint`

Here are some examples with improved API:
```c++
// We are able to set configurations, generalized velocity, and generalized acceleration to skeleton as
skeleton->setConfigs(q, false, false, false);  // Just store q to skeleton
skeleton->setConfigs(q, true, false, false);  // and also update transformations of body nodes
skeleton->setConfigs(q, true, true, false);  // and also update spacial velocities of body nodes
skeleton->setConfigs(q, true, true, true);  // and also update spacial accelerations of body nodes
skeleton->setGenVels(dq, true, false);  // Store generalized velocity and update spacial velocities of body nodes
skeleton->setGenAccs(dq, true);  // Store generalized acceleration, and update spacial accelerations and accelerations

// We are also able to set the values directly to the joints as
skeleton->getJoint("left_hip")->setConfigs(q, true, false, false);
skeleton->getJoint("left_hip")->setGenVels(dq, true, false);
skeleton->getJoint("left_hip")->setGenAccs(ddq, true);

// If you want to update the spacial values at once then
skeleton->setConfigs(q, false, false, false);
skeleton->setGenVels(dq, false, false);
skeleton->setGenAccs(ddq, false);
skeleton->computeForwardKinematics(true, true, true);

// If you want more simple way not considering performance, then you can just ignore all the Boolean flags as
skeleton->setConfigs(q);  // All the spacial values are updated as default
skeleton->getJoint("left_knee")->setConfigs(q);  // All the spacial values are updated as default
```