A Theoretical Study of p-Type Doping of ZnO: Problems and Solutions