first stab at async reduce
swap tag/rank in send/recv calls
bug in computing number of children when none
add state to disable reductions, merge event loop in request_work routine with work_loop
do not check for term in request_work, since we do that in work_loop anyway
simplify work_loop a bit
move local_objects_processed coutner to CIRCLE_state struct
move work_requested and no_work_received counters to CIRCLE_state struct
drop local hop byte globals since not used
rearrange state structure and init logic for readability
rename token fields and edit termination check code
rename offset fields in struct
group persist req state in local state struct
drop mpi state struct, reorganize and group fields in local state struct
change synchronous send to plain send for better performance
fix rank/size bug
bug fix: change token_recv_buf from int8_t to int
first stab at user defined reduction
forgot to actually attach user reduction buffer
change reduce type from int to long long