Fix crash from overmap monster groups and more

Fixes #8528 - stupid recursion.

Changes `overmap::layers` into a proper `std::array` and gets rid of the pointer and the manual allocation/deallocation.

I deleted the default constructor of overmap as each overmap *needs* its position to work properly (provided by the other constructor), that default constructor is not used anywhere. Also made the copy constructor and the assignment operator to be compiler generated as this is now possible (`std::array` supports those functions as do all the other members). This partly fixes issue #8416.