Formation of Carbon Carbon and Carbon Heteroatom Bonds Using Metal Free and Metal Based Heterogeneous Catalysts