iterator: implement accessible iterator (works on [] and size)
matrix: add iterator support
vector: support the new iterator
vector: put _data access first