Refactor the push_block call tree
Refactor the push_block call tree

This tree needed to be cleaned up after my changes earlier. Some of the
functions were returning the fork_block_data of the second block from
the end of the longest fork, as a way to get the block_id of the end of
the fork. This was a dirty hack, and now the fork data of the last
block, as well as its block id, are returned together.

bitsuperlab/cpp-play,RemitaBit/Remitabit,drltc/keyid,bitshares/bitshares,Ziftr/bitshares,bitshares/devshares,dacsunlimited/dac_play,camponez/bitshares,bitshares/bitshares-0.x,FollowMyVote/bitshares,jakeporter/Bitshares,denkhaus/bitsharesx,RemitaBit/Remitabit,bitshares/bitshares-0.x,camponez/bitshares,FollowMyVote/bitshares,FollowMyVote/bitshares,bitshares/devshares,RemitaBit/Remitabit,frrp/bitshares,Ziftr/bitshares,RemitaBit/Remitabit,bitsuperlab/cpp-play,dacsunlimited/dac_play,dacsunlimited/dac_play,frrp/bitshares,bitsuperlab/cpp-play,jakeporter/Bitshares,drltc/keyid,bitshares/devshares,bitshares/bitshares-0.x,RemitaBit/Remitabit,dacsunlimited/dac_play,drltc/keyid,dacsunlimited/dac_play,jakeporter/Bitshares,frrp/bitshares,bitshares/bitshares-0.x,camponez/bitshares,dacsunlimited/dac_play,bitsuperlab/cpp-play,bitshares/bitshares,frrp/bitshares,bitshares/bitshares,RemitaBit/Remitabit,bitshares/bitshares,drltc/keyid,frrp/bitshares,bitshares/devshares,bitshares/bitshares-0.x,bitshares/bitshares-0.x,camponez/bitshares,denkhaus/bitsharesx,bitshares/devshares,bitsuperlab/cpp-play,jakeporter/Bitshares,FollowMyVote/bitshares,jakeporter/Bitshares,bitshares/bitshares,denkhaus/bitsharesx,bitshares/bitshares,FollowMyVote/bitshares,Ziftr/bitshares,Ziftr/bitshares,camponez/bitshares,FollowMyVote/bitshares,bitshares/devshares,denkhaus/bitsharesx,bitsuperlab/cpp-play,camponez/bitshares,frrp/bitshares,jakeporter/Bitshares