How to encode links in email templates?
Is there no way to have separate templates for text and html emails in craft?


Correct.  That's something we're going to try to address in Craft 3.

Regarding the ampersand encoding, I can't reproduce that locally.  Maybe your email client is encoding it or there is an overly aggressive mod_security / Suhosin / Apache setting that's doing it?