John Stewart, vévoda z Albany