Proving that $S^* = (S^*)^*$
As you observed, to show $S^*=(S^*)^*$ it will suffice to show $S^*\subseteq(S^*)^*$ and $(S^*)^*\subseteq S^*$. Here's a sketch of a proof of both containments.

For a language $A$, define $A^*=\{x_1x_2\dots x_n\mid n\ge 0\text{ and each }x_i\in A\}$. Then (with $n=1$) it's clear that for all $x\in A$ we'll have $x\in A^*$, establishing that $S^*\subseteq(S^*)^*$.

To show containment in the opposite direction, let $x\in (S^*)^*$, then by definition we'll have $x=y_1y_2\dots y_n$ where $y_i\in S^*$ for all $1 \le i\le n$. Then, again by definition, we'll have $y_i=z_{i1}z_{i2}\dots z_{in_i}$ where $z_{ij}\in S$ for all suitable $i$. We'll then have 
$$
x=(z_{11}z_{12}\dots z_{1n_1})(z_{21}z_{22}\dots z_{2n_2})\dots(z_{n1}z_{n2}\dots z_{nn_n})
$$
where each $z_{ij}\in S$. Applying the definition of star one more time we see that $x\in S^*$, establishing that $(S^*)^*\subseteq S^*$ and hence the desired equality.