Range support

This header enables using vectors and matrices in range based for loops:

```
glm::vec3 v(1,2,3);
for(auto x : v)
	cout << x << endl;
```

It also works on matrices, element-wise. If you want to be very fancy, one could add column-iterators and row-iterators, but I didn't need that, so I skipped it. What are your thoughts on this kind of functionality?

Any thoughts about the implementation?