Remove a silly array wrapper class in factor of std::vector.

Could be refactored more heavily, but then again I'm scared of bounds checking vector implementations...
Why even change this to requiring -1 wrapping around to u32 max?