TwoSidedVec 
===========
A vector that can grow both forwards and backwards.
It's effectively equivelant two seperate `back` and `front` vectors,
with the back elements accessed by negative indexes.