Added an iterator to Vector so you can use range based for loops on them

This adds an iterator to the Vector class. This uses some c++11 features (std::conditional). I'm not sure whether that is desirable.