A Comprehensive Survey on SmartNICs: Architectures, Development Models, Applications, and Research Directions