get rid of bump_reductions
it hurts performance in some cases and credit_flow does a better job
replace credit_flow:update/3 with a macro
un order to eliminate closure creation and thus improve performance.

Also...
- get rid of a 'get/2' call by processing result of 'erase' instead
- inline remaining get/2 calls for performance
create branch
merge bug25363 into bug25365
only invoke control_throttle when necesseary
get rid of rabbit_channel MASKED_CALL macro
which simplifies the code and eliminates a performance hotspot
merge bug25365 into bug25367
make reader react to flow control sooner
...by blocking when encountering content headers/body frames, rather
than method frames of content-bearing commands.
move a bunch of reader state fields into 'connection'
These fields are constant, seldom read, and associated with the
connection.
Also, move #connection definition from rabbit.hrl to rabbit_reader -
nothing else is using this and it is really private to the reader.
move some more reader state into #connection
and also clear auth_state once auth has been completed, so we don't
hang on to some potentially large piece of state.
move throttle related reader state into sub-state
optimise rabbit_channel:process_routing_result/6
- put most common clause first
- inline record_confirm/3
optimise pmon:monitor_all common cases
optimise rabbit_amqqueue:lookup/1 common cases
refactor: shorter/better names for rabbit_trace functions
merge default into bug25369
optimise rabbit_trace:tap_{in,out} common cases
optimisation: inline rabbit_guid:blocks_to_binary/1
optimisation: ditch guards on rabbit_misc:r/{2,3}
cosmetic