enable rabbitmq heartbeat to solve processes hang by amqp socket
enable rabbitmq heartbeat to solve issues of hanging SIP processing because of a broken amqp socket

This implementation enabled the rabbitmq's client side's heartbeat negotiation.

Issue:
Because of TCP's nature, it takes very long time for a TCP peer to make the decision of closing a local socket when the connection actually is broken. The event_rabbitmq module didn't handle the situation which causes the Opensips1.9 stop processing UDP packets until the O.S decides to close the local socket. One of the consequence is that UAC cannot register to the registrar during this time period.

Issue Reproduce:
1. Block an existing amqp connection from the rabbitmq-server that event_rabbitmq module connects to.
2. From the event_rabbitmq side, the UDP receive-buffer that Opensips uses should be full.

Solution:
If the module, even_rabbitmq/rabbitmq-client, doesn't get a heartbeat message from the rabbitmq-server within X seconds, the rabbitmq-client will kill the local socket connection actively.

Added a modparam:

modparam("event_rabbitmq", "heartbeat", [X seconds]
nat_uac_test() : Add support for Shared Address Space (RFC 6598)
100.64.0.0/10 address block is processed like any RFC 1918 blocks
Re-install dlg callbacks (for restoring FROM/TO hdr) upon re-loading dialogs on startup.
Reported by Jeff Pyle.
Use proper locking function (via the generic locking API)
Reported by Max E. Reyes Vera Juarez.
core: enhance error log for un-parsable msg by adding the source IP and port
Also trace the CANCEL requests in case we're doing trace_dialog()
(cherry picked from commit 50463f044c5bd42eb5485cac52419a8ec45ee201)
Merge pull request #111 from csollet/rfc6598

nat_uac_test() : Add support for Shared Address Space (RFC 6598)
Merge pull request #100 from franklyfox/1.9_rabbitmq_heartbeat

enable rabbitmq heartbeat to solve issues of hanging SIP processing because of a broken amqp socket
event_rabbitmq: added heartbeat parameter doc