Optimisation

Leak plugged for larger (~100x~100) maps - every GridTile inherited from
Sprite, which made it considerably slower due to the unnecessary extra
functions.

In order to fix this bug, implemented templates for the tiles. However,
this caused a problem with accepting Door (as a GridTile<Sprite>, not
GridTile<Entity>) in templates later on.