Recent advances in the synthesis of carbohydrate mimics