In Hatcher's statement of the Lefschetz Fixed Point Theorem (2C.3), he has a hypothesis that the space $X$ in question must be a retract of a finite simplicial complex. The first part of the proof qualifies this, and ultimately states:
Suppose $r:K \rightarrow X$ is a retraction of the finite simplicial complex K onto X. For a map $f:X \rightarrow X$, the composition $fr:K \rightarrow X \subset K$ then has exactly the same fixed points as $f$. Since $r_*:H_n(K) \rightarrow H_n(X)$ is projection onto a direct summand, we clearly have $\text{tr}(f_* r_*) = \text{tr} (f_*)$, so the Lefschetz numbers are equal, i.e. $\tau(f_*r_*) = \tau(f_*)$.
Quesions: How is $r_*$ a projection onto a direct summand? How does it "clearly" follow from this that the trace of the composition is the same as the trace of $f_*$ itself?
Approach: I think I see that $r_*$ is a projection onto a direct summand by looking at the exact sequence $$0 \rightarrow H_n(X) \xrightarrow{i_*} H_n(K) \rightarrow H_n(K, X) \rightarrow 0.$$ Then since $r_* \circ i_*$ is the identity on $H_n(X)$, the exact sequence splits, and so the splitting lemma yields $H_n(K) = H_n(X) \oplus H_n(K, X)$, and the function $r_*$ acts like projection onto the summand $H_n(X)$.
From here, I have no ideas on how to see that $\text{tr}(f_* r_*) = \text{tr} (f_*)$. What does this follow from? It is not clear to me.
Part of the confusion is in defining the trace of a group homomorphism. Once this is done, the proof is not too difficult since, from the comments in the question on how to prove this in the setting of vector spaces, it is easy to see how the proof might follow for finitely generated abelian groups.
In general, let $A$ be a finitely generated abelian group and $\varphi : A \rightarrow A$ a group homomorphism. By the fundamental theorem of finitely generated abelian groups, $A = \mathbb{Z}^n \oplus T$, where $T$ is the torsion subgroup of $A$. Taking the quotient with respect to $T$, we get the induced homomorphism $\overline{\varphi} : A/T \rightarrow A/T$ which is a homomorphism from $\mathbb{Z}^n$ to itself. Thus, $\overline{\varphi}$ has a matrix representation since $\mathbb{Z}^n$ is a ring, and we can thus define $\text{tr}(\varphi) := \text{tr}(\overline{\varphi})$, the trace of the induced homomorphism after modding out by torsion.
The Lefschetz number for a map $f : X \rightarrow X$ from a finite CW complex to itself is thus defined as $\tau(f) = \sum_n (-1)^n \text{tr}(f_*:H_n(X) \rightarrow H_n(X))$, where the trace is defined as above for group homomorphisms of arbitrary finitely generated abelian groups.
Proof that $\text{tr}(f_*r_*) = \text{tr}(f_*)$: Since $H_n(K) = H_n(X) \oplus H_n(K, X)$, the free abelian parts and the torsion subgroups also decompose into a direct sum, and so if $\mathbb{Z}^m$ is the torsion-free part of $H_n(K)$, then the torsion free parts of $H_n(X)$ and $H_n(K, X)$ are $\mathbb{Z}^{m'}$ and $\mathbb{Z}^{m''}$ where $m = m' + m''$. Hence $\text{tr}(f_*)$ is the trace of the matrix $\overline{f_*} : \mathbb{Z}^{m'} \rightarrow \mathbb{Z}^{m'}$ induced by quotienting out torsion.
We can choose a basis for the torsion-free part of $H_n(K)$ that plays nice with the direct sum decomposition by first choosing a basis for the torsion-free part of the subgroup $H_n(X)$ and adding to it a basis for the torsion-free part of the subgroup $H_n(K, X)$. Using this basis we define the matrices $M^r$ for $\overline{r_*} : \mathbb{Z}^{m} \rightarrow \mathbb{Z}^{m'}$ and $M^f$ for $\overline{f_*} : \mathbb{Z}^{m'} \rightarrow \mathbb{Z}^{m'}$. The $m' \times m$ matrix for $\overline{f_*}\overline{r_*} : \mathbb{Z}^m \rightarrow \mathbb{Z}^{m'}$ may be extended to a square matrix by composing with the $m \times m'$ matrix for the inclusion map $M^i = [I_{m'} \hspace{0.05in} 0]^T$. Thus, since the matrix for $\overline{r_*}$ is given by $[I_{m'} \hspace{0.05in} 0]$, we have
$$M^iM^fM^r = \begin{pmatrix}I_{m'}\\0\end{pmatrix}\begin{pmatrix}M^f\end{pmatrix} \begin{pmatrix} I_{m'} & 0\end{pmatrix} = \begin{pmatrix}I_{m'} & 0 \\ 0 & 0 \end{pmatrix}\begin{pmatrix}M^f & 0 \\ 0 & 0 \end{pmatrix}\begin{pmatrix}I_{m'} & 0 \\ 0 & 0 \end{pmatrix} = \begin{pmatrix}M^f & 0 \\ 0 & 0 \end{pmatrix},$$
and so $\text{tr}(f_*r_*) = \text{tr}(f_*)$.