Inverse Kinematics with Dual-Quaternions, Exponential-Maps, and Joint Limits