Took grasping to the next level. Lots of optimization, lazy-lists usage, failure handling

Grasp assignments (solutions for the gripper/handle assignment problem) are now calculated using lazy lists, greatly improving performance during execution (the respective 'next' solution is only calculated when the current one doesn't work). Different grasp types can now easily be added, like the top-slide-down grasp already inserted next to the 'standard' grasp type.

Also, failure handling has been optimized and added where necessary.