Add diameter_tcp option throttle_cb
Add diameter_tcp option throttle_cb

To let a callback module decide whether or to receive another message
from the peer, so that backpressure can be applied when it's
inappropriate. This is to let a callback protect against reading more
than can be processed, which is otherwise possible since diameter_tcp
otherwise always asks for more.

A callback is made after each message, and can answer to continue
reading or to ask again after a timeout. It's each message instead of
each packet partly for simplicity, but also since this should be
sufficiently fine-grained. Per packet would require some interaction
with the fragment timer that flushes partial messages that haven't been
completely received.

RoadRunnr/otp,rlipscombe/otp,goertzenator/otp,massemanet/otp,dumbbell/otp,bjorng/otp,fenollp/otp,release-project/otp,getong/otp,vladdu/otp,erlang/otp,emile/otp,kvakvs/otp,emacsmirror/erlang,release-project/otp,vinoski/otp,dumbbell/otp,g-andrade/otp,isvilen/otp,dumbbell/otp,potatosalad/otp,potatosalad/otp,uabboli/otp,jj1bdx/otp,erlang/otp,vinoski/otp,electricimp/otp,vladdu/otp,emacsmirror/erlang,vladdu/otp,bernardd/otp,dgud/otp,ahmedshafeeq/otp,g-andrade/otp,vinoski/otp,emile/otp,g-andrade/otp,RaimoNiskanen/otp,cobusc/otp,rlipscombe/otp,uabboli/otp,jj1bdx/otp,emacsmirror/erlang,saleyn/otp,ferd/otp,aboroska/otp,legoscia/otp,weisslj/otp,RoadRunnr/otp,ahmedshafeeq/otp,matwey/otp,ahmedshafeeq/otp,ferd/otp,basho/otp,erlang/otp,bugs-erlang-org/otp,aboroska/otp,jj1bdx/otp,goertzenator/otp,release-project/otp,bjorng/otp,matwey/otp,bsmr-erlang/otp,bjorng/otp,uabboli/otp,tuncer/otp,vinoski/otp,lemenkov/otp,ferd/otp,emacsmirror/erlang,emile/otp,erlang/otp,cobusc/otp,emacsmirror/erlang,vinoski/otp,erlang/otp,isvilen/otp,psyeugenic/otp,bsmr-erlang/otp,vladdu/otp,tuncer/otp,kvakvs/otp,electricimp/otp,lrascao/otp,basho/otp,tuncer/otp,mikpe/otp,fenollp/otp,erlang/otp,bsmr-erlang/otp,RoadRunnr/otp,isvilen/otp,isvilen/otp,tuncer/otp,dumbbell/otp,dgud/otp,isvilen/otp,jj1bdx/otp,saleyn/otp,matwey/otp,neeraj9/otp,isvilen/otp,tuncer/otp,uabboli/otp,RaimoNiskanen/otp,basho/otp,cobusc/otp,falkevik/otp,neeraj9/otp,bjorng/otp,emacsmirror/erlang,g-andrade/otp,massemanet/otp,lemenkov/otp,falkevik/otp,jj1bdx/otp,emile/otp,lemenkov/otp,lrascao/otp,ferd/otp,bernardd/otp,matwey/otp,emacsmirror/erlang,uabboli/otp,vinoski/otp,aboroska/otp,emile/otp,electricimp/otp,getong/otp,aboroska/otp,lrascao/otp,RaimoNiskanen/otp,lrascao/otp,massemanet/otp,bugs-erlang-org/otp,bsmr-erlang/otp,electricimp/otp,bernardd/otp,cobusc/otp,dgud/otp,bsmr-erlang/otp,g-andrade/otp,getong/otp,fenollp/otp,erlang/otp,mikpe/otp,g-andrade/otp,dumbbell/otp,rlipscombe/otp,dumbbell/otp,lemenkov/otp,weisslj/otp,emacsmirror/erlang,bugs-erlang-org/otp,mikpe/otp,bsmr-erlang/otp,jj1bdx/otp,dgud/otp,fenollp/otp,basho/otp,emacsmirror/erlang,ahmedshafeeq/otp,getong/otp,massemanet/otp,g-andrade/otp,lemenkov/otp,tuncer/otp,release-project/otp,saleyn/otp,RaimoNiskanen/otp,vinoski/otp,vinoski/otp,falkevik/otp,bugs-erlang-org/otp,fenollp/otp,lemenkov/otp,kvakvs/otp,isvilen/otp,emile/otp,rlipscombe/otp,kvakvs/otp,cobusc/otp,release-project/otp,fenollp/otp,legoscia/otp,weisslj/otp,bjorng/otp,release-project/otp,weisslj/otp,getong/otp,matwey/otp,dumbbell/otp,massemanet/otp,dumbbell/otp,potatosalad/otp,RaimoNiskanen/otp,uabboli/otp,basho/otp,erlang/otp,neeraj9/otp,bugs-erlang-org/otp,falkevik/otp,erlang/otp,basho/otp,rlipscombe/otp,vladdu/otp,emile/otp,rlipscombe/otp,bernardd/otp,lrascao/otp,falkevik/otp,weisslj/otp,RoadRunnr/otp,getong/otp,lightcyphers/otp,uabboli/otp,goertzenator/otp,massemanet/otp,lightcyphers/otp,falkevik/otp,psyeugenic/otp,lightcyphers/otp,getong/otp,goertzenator/otp,RoadRunnr/otp,kvakvs/otp,bsmr-erlang/otp,tuncer/otp,bernardd/otp,jj1bdx/otp,getong/otp,electricimp/otp,legoscia/otp,potatosalad/otp,jj1bdx/otp,saleyn/otp,basho/otp,falkevik/otp,psyeugenic/otp,aboroska/otp,aboroska/otp,ferd/otp,dgud/otp,goertzenator/otp,RoadRunnr/otp,dumbbell/otp,bugs-erlang-org/otp,psyeugenic/otp,potatosalad/otp,electricimp/otp,g-andrade/otp,vladdu/otp,matwey/otp,kvakvs/otp,dgud/otp,bjorng/otp,lrascao/otp,neeraj9/otp,psyeugenic/otp,psyeugenic/otp,tuncer/otp,bernardd/otp,falkevik/otp,bjorng/otp,mikpe/otp,massemanet/otp,weisslj/otp,ferd/otp,uabboli/otp,bernardd/otp,ahmedshafeeq/otp,massemanet/otp,legoscia/otp,cobusc/otp,isvilen/otp,weisslj/otp,release-project/otp,lrascao/otp,ahmedshafeeq/otp,mikpe/otp,cobusc/otp,lightcyphers/otp,lrascao/otp,rlipscombe/otp,bugs-erlang-org/otp,saleyn/otp,release-project/otp,neeraj9/otp,rlipscombe/otp,potatosalad/otp,matwey/otp,fenollp/otp,aboroska/otp,bernardd/otp,RaimoNiskanen/otp,neeraj9/otp,release-project/otp,lightcyphers/otp,ferd/otp,legoscia/otp,weisslj/otp,goertzenator/otp,falkevik/otp,mikpe/otp,fenollp/otp,goertzenator/otp,weisslj/otp,emacsmirror/erlang,neeraj9/otp,bjorng/otp,bernardd/otp,ahmedshafeeq/otp,aboroska/otp,lemenkov/otp,electricimp/otp,lemenkov/otp,basho/otp,psyeugenic/otp,g-andrade/otp,RaimoNiskanen/otp,matwey/otp,erlang/otp,dumbbell/otp,jj1bdx/otp,aboroska/otp,dgud/otp,potatosalad/otp,goertzenator/otp,kvakvs/otp,legoscia/otp,goertzenator/otp,saleyn/otp,fenollp/otp,uabboli/otp,RoadRunnr/otp,neeraj9/otp,lrascao/otp,isvilen/otp,mikpe/otp,ferd/otp,RoadRunnr/otp,vladdu/otp,getong/otp,saleyn/otp,RoadRunnr/otp,RaimoNiskanen/otp,kvakvs/otp,mikpe/otp,bjorng/otp,matwey/otp,massemanet/otp,rlipscombe/otp,tuncer/otp,g-andrade/otp,dgud/otp,lightcyphers/otp,cobusc/otp,jj1bdx/otp,electricimp/otp,rlipscombe/otp,kvakvs/otp,bsmr-erlang/otp,lightcyphers/otp,psyeugenic/otp,emile/otp,mikpe/otp,bjorng/otp,potatosalad/otp,ahmedshafeeq/otp,RaimoNiskanen/otp,saleyn/otp,potatosalad/otp,ahmedshafeeq/otp,legoscia/otp,vinoski/otp,basho/otp,bsmr-erlang/otp,vladdu/otp,legoscia/otp,ferd/otp,dgud/otp,dgud/otp,getong/otp,legoscia/otp,vladdu/otp,electricimp/otp,potatosalad/otp,emile/otp,isvilen/otp,lightcyphers/otp,saleyn/otp,mikpe/otp,bugs-erlang-org/otp,vinoski/otp