Function: distribute()
Distributes the rewards to the reward tracker contract.
Branches and code coverage (including function calls)
Intended branches
Should increase the balance of the RewardTracker contract.
Updates the last distribution time.
Should only send the amount of rewards that are available. This means that if the contract has less rewards than the amount of rewards that should be distributed, it will send all the rewards that it has.
Negative behavior
Should not be callable by anyone other than the RewardTracker contract.
Should not allow distribution if there are no rewards to distribute.