$\def\Hom{\mathrm{Hom}}$
So, since you already know that the product of the bases spans $V \otimes W$, you just need to show that the dimension of $V \otimes W$, which is the dimension of its dual, is the product of the dimension of $V$ and the dimension of $W$.
We first reduce the problem to showing that
$$(V \otimes W)^{*} = \Hom_{k}(V \otimes W, k) \cong \Hom_{k}(V, \Hom_{k}(W, k)) = \Hom_{k}(V, W^{*}).$$
Note that if the above relationship holds, then the dimension of $V \otimes W$ is the dimension of the space of linear maps from $V$ to $W^{*}$, which is just the product of the dimensions of $V$ and $W^{*}$, and is hence the product of the dimensions of $V$ and $W$.
So, to show the above equalities, note that the leftmost and rightmost equalities are by definition of the dual. So we need to show that
$$\Hom_{k}(V \otimes W, k) \cong \Hom_{k}(V, \Hom_{k}(W, k)).$$
This is actually true if $k$ is any ring and $V$ and $W$ are any $k$-modules. This is the adjunction between $\Hom$ and tensor product. But let's go through the details for the vector space case.
Suppose $\phi$ is a linear map from $V \otimes W$ to $k$. We want to define $f(\phi)$ which takes a vector in $v$ and spits out a linear map from $W$ to $k$. To do so, we define
$$(f(\phi) (v)) (w) = \phi(v \otimes w).$$
You should check that this map is linear and well-defined. It is not too hard. We next construct an inverse map. Given $\psi$ which to each $v$ assigns a linear map from $W$ to $k$, we define $g(\psi)$ as a linear map from $V \otimes W$ to $k$ by first defining it on the simple tensors as
$$g(\psi)(v \otimes w) = \psi(v)(w)$$
noting that this is bilinear in the $v$ and $w$ and then noting that bilinear maps extend to all of $V \otimes W$.
Again, $g$ can be checked to be linear and you can also easily see that $f$ and $g$ are inverses.
Yes it is true independent of the cardinality of the bases of the vector spaces. Use the universal property: Let $T$ be any vector space over the given field.
A bilinear map $V \times W \to T$ is uniquely determined by the images of the pairs $(v_i,w_j)_{i \in I,j \in J}$, so we get
$$Bil(V \times W, T) = Abb(\{(v_i,w_j), i \in I, j \in J\},T)= Abb(\{v_i \otimes w_j, i \in I, j \in J\},T)$$
By the universal property $V \otimes W$ is the vector-space with the property
$$Hom(V \otimes W,T) = Bil(V \times W, T)$$
, so we obtain
$$Hom(V \otimes W,T) = Abb(\{v_i \otimes w_j, i \in I, j \in J\},T)$$
, which precisely states that $\{v_i \otimes w_j, i \in I, j \in J\}$ is a basis of $V \otimes W$.
Let us precise this:
Given a map in $f \in Abb(\{v_i \otimes w_j, i \in I, j \in J\},T)$, which means that we are given $f(v_i \otimes w_j)$ for all $i \in I, j \in J$, we have to show that this extends uniquely to a map $F:V \otimes W \to T$.
We define the bilinear map $\hat f: V \times W \to T$ by $\hat f(v_i,w_j) := f(v_i \otimes w_j)$. By the universal property, this gives us a unique map $F:V \otimes W \to T, F(v \otimes w)=\hat f(v_i,w_j)=f(v_i \otimes w_j)$. Hence this is the desired unique map.
The uniqueness of $F$ is trivial anyway, because $\{v_i \otimes w_j, i \in I, j \in J\}$ is clearly a set of generators. We only need to show the existence of $F$ here (And this corresponds to the linear independence).
Best Answer
For (a), you actually have more: for any pair of vector spaces, $V \times W$ has a natural vector space structure and there is a natural isomorphism $V \times W \cong V \oplus W$. In fact, one often defines $\oplus$ to mean $\times$.
For (b), the map is almost never injective. For any pair of vectors $v,w$ and scalar $r$, you have $(rv) \otimes w = v \otimes (rw)$, and thus $(rv, w)$ and $(v, rw)$ have the same image. The only exception is when $V$ and $W$ are both zero vector spaces.
For (c), we call the image of $g$ the pure tensors. For any pair of vector spaces, every element of $V \otimes W$ can be written in the form
$$ \sum_{i=1}^n v_i \otimes w_i $$
for some natural number $n$ and sequence of vectors $v_i \in V$ and $w_i \in W$. So, the general tensors are simply linear combinations of the pure ones.
The smallest value of $n$ that can be chosen is called the rank of the tensor. (but be careful, rank is also commonly used in this context to mean something completely different)
This agrees with the notion of rank for matrices, when you view the space of matrices as the tensor product of the space of column vectors with the space of row vectors.