Perovskites: high performance materials for thin-film photovoltaics