Barcelona's Lionel Messi finished 2018 as Europe's top goal-scorer after netting 47 goals for the La Liga club.