solar cells : a review and comparison of polymer : fullerene , hybrid polymer and perovskite solar cells