I'll follow an algebraic approach here, and make reference to Hatcher's "Algebraic Topology", available at http://www.math.cornell.edu/~hatcher/AT/ATpage.html.
Given a map $f : S^{n-1} \to S^{n-1} \simeq R^n - p$, we can, as you say, measure its winding number as the homotopy class $[f] \in \pi_{n-1}(S^n-1) \cong \mathbb{Z}$, but we'll have to adapt this a bit for general hypersurfaces rather than spheres. We can compute the same number with the induced map $f_* : \pi_{n-1}(S^{n-1}) \to \pi_{n-1}(S^{n-1})$, as this is a linear map $\mathbb{Z} \to \mathbb{Z}$, which is just multiplication by some integer. This integer is the same winding number, just from thinking through definitions. We could compute similarly in homology, with $f_* : H_{n-1}(S^{n-1}) \to H_{n-1}(S^{n-1})$ again being multiplication by the very same winding number, by the Hurewicz theorem relating homotopy and homology groups (see Hatcher Sec. 4.2).
Homology is convenient, because a general (compact, oriented) $(n-1)$-manifold still has $H_{n-1}(M) \cong \mathbb{Z}$. So with an $(n-1)$-manifold $M$ and a map $f : M \to \mathbb{R}^n - p \simeq S^{n-1}$, the induced map $f_* : H_{n-1}(M) \to H_{n-1}(S^{n-1})$ is again a map $\mathbb{Z} \to \mathbb{Z}$ (after a choice of generators, i.e. orientations), which is multiplication by an integer, which is our generalized winding number. We could use the induced map in cohomology equally well (by the Universal Coefficient Theorem, Hatcher thm. 3.2, or similar).
Note that we could also replace the target $S^{n-1}$ by a different $(n-1)$-manifold. In this generality, the number that we're computing is usually called the "degree" of the map $f$. These definitions appear in Hatcher, at the start of section 2.2 for spheres, and then in the exercises for more general manifolds.
For a "typical" point in the target $S^{n-1}$, the preimage consists of finitely many points in $M$. This amounts to intersecting $M \subset \mathbb{R}^n - p$ with a ray from $p$. Hatcher shows in Prop. 2.30 that the degree can be computed as a sum of signs associated to these points, and we can compute these signs from induced maps on local homology, which amounts to thinking about orientation. So we've bridged (a) and (b) from your question.
I'll be a bit brief on (c), but as we can compute degree through cohomology, we can in particular compute with differential forms by using De Rham cohomology. As I understand it, the electric field determines a dual $(n-1)$-form, which happens to generate $H_{dR}^{n-1}(\mathbb{R}-p)$. We pull this back along $f$ to the manifold $M$, and look at what multiple of the chosen generator (volume form) in $H_{dR}^{n-1}(M)$ it determines, which we compute by integrating. This computes the induced map $f^*$ on cohomology. I imagine that Guillemin and Pollack is a decent reference, though I don't have it on hand.