A Survey on Security Applications with SmartNICs: Taxonomy, Implementations, Challenges, and Future Trends