John Stewart, II duca di Albany