Colloidal solar cells