French Onion Soup from Scratch