A Brief History of String Theory:From Dual Models to M-Theory