vrrp: fix gratuitous ARP refresh timer handling

Previous code was using an 'int' to store parsed timer value. This value
was then expanded to TIMER_HZ which can lead to a wrapping issue if
requested timer is longer than local machine 'int' representation.

This patch reworked the code to use timeval_t instead and perfrom
regular timeval operations.
vrrp: Fix a memory leak while dropping incoming IPSEC-AH authenticated advert.

Jay True fixed a memory leak in IPSEC-AH sanity check. Digest was allocated in
previous code without freing it on HMAC-MD5 missmatch. good catch Jay !
vrrp: Extend IPSEC-AH auth to support unicast

If you plane to use IPSEC-AH auth in unicast mode (which THE best idea), then
IP header TTL MUST be zeroed since it is mutable field on transit.
memset is done by MALLOC
Cleanup MALLOC and use infer object size to get allocated instead of type
zalloc use xalloc for consistency
Doc typo in memory module
Exit on memory allocation failure to avoid undefined behaviour
Secure send and snprintf in SMTP module
Remove unsused and bugged extract_content_length function
Use an auto var as a buffer in extract_status_code
Remove unuseful casts
Use a local buffer for VRRP parser