Use of carbon dioxide as feedstock for chemicals and fuels: homogeneous and heterogeneous catalysis