Multi-Contact Motion Planning