First-principles computational electrochemistry: Achievements and challenges