Function: stakeFor(address _for, uint256 _amount)
The same function as stake, but _balances, rewards, and userRewardPerTokenPaid is updated for the _for address provided by caller. The stakingTokens are transferred from the caller address.