Major memory management flipping, including adding z_zone

- Went through and turned all of the dynamic arrays and every use of malloc to
  use the new DynamicArray class.
- Fixed the inappropriate use of pointers to use structs directly and pass them
  to the Array* functions by reference with &.
- DynamicArray uses Doom's zone heap management, so it's easier to find bugs
  since there are safeguards in z_zone for heap corruption and such.