2D dynamic array wrapper.
Allocates memory in the constructor,
deallocates memory in the destructor.

Everything is inline, so it can be used as a header-only (library?).