Why CO2 has 4 vibrational degrees of freedom?
Molecular vibrations can certainly occur by changing the O-C-O bond angle away from 180º. When we call the molecule linear we are saying that the geometric minimum is a linear configuration; however, vibrational modes can (and do) break that symmetry. What's important is that the average nuclear position is a linear molecule (or if you're doing a geometry calculation you would say that it's the 0 K positions). 

So the two vibrational modes you're missing are the two O-C-O bends at 90º from each other. 

Also as a note: you seem to be suggesting that the two stretches correspond with the two bonds stretching. That's not quite true. One of them corresponds to both C-O bonds stretching outward at the same time (in phase) and the other will correspond one compressing while the other stretches (out of phase).

For a full derivation of the normal modes of CO$_2$ there are many sites, but this one looked good: http://www.colby.edu/chemistry/PChem/notes/NormalModesText.pdf