How can I teleport a specific villager to a specific player?

Summen the villager like that (He will be in "god mode" and will not move)

/summon Villager ~ ~1 ~ {CustomName:"Eliza",CustomNameVisible:1,Profession:0,Invulnerable:1,NoAI:1}

To teleport the villager to the Player put this cmd into an repeating cmd block

/tp @e[name=Eliza,type=Villager] @p

The problem is, that the villeger is exactly in the player. To soolve this, we'll add a kind of delay.

Create a scoreboard:

/scoreboard objectives add lifeTime dummy

Then a repeating cmd block chain:

/summon ArmorStand ~-2 ~ ~ {CustomName:"Follower",Marker:1b,Invisible:1,Invulnerable:1,NoGravity:1}
/scoreboard players add @e[type=ArmorStand,name=Follower] lifeTime 1
/tp @e[score_lifeTime=1,type=ArmorStand,name=Follower] @p
/execute @p ~ ~ ~ tp @e[name=Eliza,type=Villager] @e[score_lifeTime_min=20,type=ArmorStand,name=Follower,rm=2]
/kill @e[score_lifeTime_min=20,type=ArmorStand]

Setup

The player will then follow the player but will not go nearby the player (2 blocks radius)

Generator for summon commands: https://mcstacker.bimbimma.com/

Command selectors: http://minecraft.gamepedia.com/Commands#Target_selectors

Plugin for visible Commands: CommandDescriptor by SimonMeusel: https://www.spigotmc.org/resources/commanddesciptor.23870/


Command 1 (In a repeating command block):

/tp @e[type=Villager,name=Eliza] @p

Command 2 (In a chain command block after the repeating one):

/tp @e[type=Villager,name=Eliza] ~-2 ~ ~ 

This will have Eliza stay at least 2 blocks away from the player but follow the player around.