What is credential spraying and why is it preferred over traditional brute-force in Active Directory environments?