Can someone inform me of where the word כפירה meaning ‘heresy’ was first used? Mishnah? Talmud? Word is not found in Tanach, apparently. How is it distinguished from other triliteral roots meaning village כפיר, lion, expiation כפר and cover כפרת?
Edits in italics:
Balashon blog discusses it at length here, and provides many sources, as well as a look at one example of it by various Rishonim. I have added some content from there during this edit.
K-P-R is used throughout the Bible to mean wiped away or covered up, which are similar to what a denial does; it wipes away or covers up a fact. This would be how the word to deny comes from that word (see below for more details), and would also be the connection to the word Kapores, and most uses of K-P-R in the bible.
This is noted by Radak in Sefer Hashorashim Erech K-P-R, that K-P-R means covering/removing/annulling, and he suggests that forgiveness comes from this word, becomes it is "removal of sins".
In terms of the other words you mentioned (as well as the various ones listed in the Balashon post), Radak there notes that they are unconnected to the other K-P-R (and in fact, there are more words that are unconnected, such as Kefor). He (Radak) doesn't give a reason why, however, Rabbi Menachem Leibtag goes through a number of them here (he understands K-P-R to be protection; Kefor protects the ground, Kofer is protection money, etc.), and the Balashon post quotes a few other sources to explain some of the others that Leibtag does not address.
Ibn Janach (in his Sefer Hashorashim here) connects some of the other K-P-R roots (such as village) with those roots in other languages, such as Arabic, and I'm sure some modern scholars have done more work on this. See the Balashon post for discussions of Akkadian and Arabic.
Jastrow (as you noted above in the comments) seems to understand this as the Aramaic word, and quotes a couple of Targumin as sources. Just as a correction, it is not פנו אלי עורף that is translated as Kefirah, but rather the Targum simply fills in the narrative of ובעת רעתם later in that verse. Apparently he understand this as "wiping out the truth".
Edit 2: Y Zibenberger (here) suggests that it comes from an Arabic word, and notes a much better proof from Targum Yonasan than Jastrow has, as in Mishlei 30:9, T"Y translates וכחשתי, which means to deny, as ואכפר.
Y. Matmon Cohen (here) suggests that the Hebrew word K-P-R to mean 'denial' came about after the Babylonian exile. He lists a number of Talmudic sources where K-P-R is used in that fashion, but obviously no biblical sources.
Balashon quotes another site that I cannot access as explaining:
[in] discussing the cognate Arabic term kuffir, suggests "to cover or to conceal" the truth.
I would add that it could be argued that verses such as Yeshaya 28:18 could be interpreted in a very similar fashion, and that they are obviously some sort of link between the old and newer translations.
When exactly people used the word "Kefirah" without anything following it to be a Kefirah of Hashem is an interesting question, and I don't have an exact answer, as it is kind of contextual. Even early sources that use this term to refer to denial, such as Mishnas Rabbi Eliezer (supposedly of Tannaic origin), still write terms such as כפירה בהקב"ה, so that it is clear what is being denied. However, it seems to have been popular from the middle of the period of Rishonim (13th century), at least in some places; for example, a search for the term "כפירה ומינות" comes up with results from Rashba (Shu"t 1:418), Keli Yakar (various sources), and many later sources. Additionally, this term is used by itself in the works of Abarbanel a number of times to mean heresy.
However, in many cases, even nowadays, the "Kefirah" will have some description added (such as "He's a Kofer Baikar", or "that is Kefirah in Chazal!").