Being generous can reduce stress and depression, lead to longer life, doctors say