Lectin-carbohydrate interactions: different folds, common recognition principles