James Longstreet, 1821-1904