Grasping and In-Hand Manipulation: Geometry and Algorithms