App layer: add 'StateHasEvents' API call

Per TX decoder events resulted in significant overhead to the
detection engine, as it walked all TX' all the time to check
if decoder events were available.

This commit introduces a new API call StateHasEvents, which speeds
up this process, at the expense of keeping a counter in the state.

Implement this for DNS as well.
DNS: move internal tx id tracking to u64
Applayer: remove obsolete StateUpdateTransactionId

Also, update StateTransactionFree to take an u64 tx id, so it's
consistant with the rest of the engine.

To reflect these changes, AppLayerRegisterTransactionIdFuncs has
been renamed to AppLayerRegisterTxFreeFunc.

HTP, DNS, SMB, DCERPC parsers updated.
DNS: suppress log-dns registration message
App layer: clean up TX before lowest active one

Update DNS to handle cleaning up this way.
HTP: free TX from transaction free API call
DNS: better handle TX' with lost replies