These are given as inductive/projective limit topologies. I assume that  $C_0^\infty$ means compactly supported and replace it by $C_c^\infty$. We topologize the space $C^k(X)$ (K-times differentiable functions) with the norm: 
$$ ||f||_k = ||f||_\infty + || f' |_\infty + \dots + || f^{(k)} ||_\infty.$$
If you know, how you topolgize inductive and projective limits, e.g. via an universal mapping property, then the following definition gives you the topology:

For $X$, define as projective limit
$$ C^\infty(X) = \cap_{k=1}^\infty \; C^k(X),$$
then the dual is an inductive limit
$$  C^\infty(X)' = \cup_{k=1}^\infty C^k(X)'.$$
So in particular, these spaces are metrizable as countable limits.

For non-compact $X$, choose a collection $(K_i)_{i \in I}$ of compact subsets $K_i$ of $X$ such that $X =\cup_{i \in I} K_i$. One efines as inductive limit
$$ C_c^\infty(X) = \lim_{J \subset I \;  finite}^{\rightarrow}\cap_{k} C^k(\cup_{i \in J} K_i).$$
For the dual, the limits switch
$$ C_c^\infty(X)' =\lim_{J \subset I \;  finite}^{\leftarrow} \cup_{k}  C^k(\cup_{i \in J} K_i)'.$$