level integration stage

Level module corrupts the model data somehow, to prevent this in the
future now a copy of  the data is created and passed there as an
argument, all changes within the module - adding or removing rooms and
so on - must be reproduced in the code outside of it.