When does Self-Prediction help? Understanding Auxiliary Tasks in Reinforcement Learning