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]
Switches to LCB_SYNCHRONOUS. Enables better reconnect support with command retry as well as a lazy_connect option.
Reset prepared statement between query lists on shutdown
Revert "Reset prepared statement between query lists on shutdown"

This reverts commit 1a070015f4cffe612d3a3cb3a66e864d7374db04.
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
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
Added Redis Raw query capability
Do proper return code to script from cachedb_* functions ( treat 0 as success )
Support returning the new value from cache_add/cache_sub
Credits to rrb3942
Merge pull request #106 from rrb3942/couchbase

Switches to LCB_SYNCHRONOUS. Enables better reconnect support with command retry as well as a lazy_connect option.
rebuilt the cachedb_couchbase documentation to reflect the recent changes
Allow drouting module to be used for DID matching only ( where you only have prefixes provisioned, no GWs, and call do_routing with the 'C' flag )
Proper usage of build_req_buf_from_sip_req() function - socket and proto are required.
Closes Bug 664 on SF.
Merge pull request #119 from shimaore/mi_json

mi_json module (new module)
If commands accepts parameters, doesn't mean they are mandatory
Leave it to the MI function to decide if it's ok to have empty params
Added mi_json module README