Cationic and anionic vacancies on the NiO(100) surface: DFT+U and hybrid functional DFT calculations