Progress in Fullerene Chemistry: From Exohedral Functionalization to Heterofullerenes