factored generic Animation class out of Area::TileType