Made list of games shared_ptr in Renderer

-Moved init of MenuList to Renderer
-MenuList no longer needs to recieve a Renderer to initalize itself.
-Renderer now has getter for Menulist, MenuManager has setter
-GameManager sets up GameList using Init(), getter and setter
Moved adding of games to Renderer

-Moved it because it needs to generate the text and set the size
accordingly
-The old way as passing a const ref to the Renderer, which is
undesireable.
-Since MenuList doesn't use Renderer anymore, the include was removed
-Moved function to cpp file
Fixed last Board game over

-BoardLoader wasn't checking for last Board properly
-Chenged BoardLoader so that every non-existing Board is removed from
the list when building the list of levels
-IsLastLevel() now returns true when there is no more levels ( used to return false, which is counter-intuitive )
Fixed issue with Hard Tuke colors not changing when being hit.

How to reproduce
-Start a game
-Go to a level that has Hard Tiles
-Hit a Hard Tle with either Ball or Bullet
-Tile will not change color
-This is because the texture pointer itsel is now a part of the
GamePiece itself, and thus needs to be updated manually

Fix
-Added method UpdateTileHit() in Renderer that takes a Tile
-If the Tile is hard, it finds texture for the Hard tile with the
current hit count.
-Otherwise it just returns as other tiles will always have the same
texture