Protection (and Deprotection) of Functional Groups in Organic Synthesis by Heterogeneous Catalysis