WiX can do all those things fairly easily (I have applications that do that and some that I use WiX to install). Problem is you have to have a pretty good understanding of Windows Installer to use WiX, as it does not really hide any of the detail from you.
The obviously alternative is InstallShield (They have a LE version that comes with VS2012 apparently, using VS2012 but not that) and Express is relatively reasonably priced.
You also may want to check out InstallAware, but I have not had good experiences with them personally when I have looked at them.
I have also been told that Advanced Installer is usable, though I have not used it myself personally.