Energetics and diffusion paths of gallium and arsenic adatoms on flat and stepped GaAs(001) surfaces