app-layer: API calls to check for TX aware proto

Introduce AppLayerParserProtocolIsTxAware which returns 1 if protocol
is Tx aware, 0 if not.
dns log: cleanups
memcmp: convert all pointer arguments to be const pointers, like memcmp itself uses.
DNS: don't store duplicate queries

When an exact duplicate DNS query is received, don't store it in the
tx.
dns: tag each tx we get a reply for as replied

Also, detect and print when server says recursion is desired.