use C++11 ranged for when available
open read only
add special cases for old Vector3/4 types
vector3s work now