Covariant and contravariant bases are dual to one another and are physics nomenclature for constructs that arise in differential geometry. The problem here is that physicists often need to use differential geometry (for example, for relativity) long before they have seen a proper course on differential geometry.
I will try to provide you with an extremely quick view of what contra/covariant bases are, and how you move between them.
First, let $M$ be a smooth manifold. For our purposes, the most important part of being a smooth manifold is the Local Euclidean property, which says that for each point $p \in M$ there are open neighbourhoods $U \subseteq M, \tilde U \subseteq \mathbb R^n$ and a homeomorphism $\phi: U \to \mathbb R^n$ for some $n$; that is, if we look closely at the manifold, it just looks like $\mathbb R^n$. If we denote $\phi$ component-wise as $\phi = (x^1,\ldots,x^n)$ then we can describe points $q \in U \subseteq M$ in terms of $(x^1(q),\ldots,x^n(q))$ in $\mathbb R^n$.
The next step is to consider the tangent space to $M$ at the point $p$, denoted by $T_pM$. There are quite a few ways of defining this guy, my favourite being as derivations on $M$ through $p$, but for intuition-sake, think of $T_pM$ as the collection of all vectors through $p$ which are tangent to $M$. This is a vector space, and so has a dual space $T_p^*M$ called the cotangent space.
The coordinates $(x^1,\ldots,x^n)$ we defined at $p$ induce a basis on the tangent space, and that basis is typically written as $ \left\{ \left.\frac{\partial}{\partial x^1}\right|_p, \ldots, \left.\frac{\partial}{\partial x^1}\right|_p\right\}$, but for our purpose let's call it $\{ v_1,\ldots,v_n\}$. Similarly, there is an induced basis on the cotangent space (which turns out to be the dual basis), often denoted $\{dx^1,\ldots,dx^n\}$ but again, for our purposes, we will write $\{v^1,\ldots,v^n\}$.
These are your covariant and contravariant bases, respectively. But you are now likely confused as covariant vectors have subscripts and contravariant vectors have superscripts. This is because the Einstein summation convention says that that an arbitrary vector $v= \sum_{i=1}^n a_i v^i$ should be written by omitting the summation sign, so that $v = a_iv^i$. But the $v^i$ are in a sense assumed to be given, so the physicists shorten it further and just write $v = a_i$, and now you get the subscripts that you wanted. The same argument works for contravariant vectors.
The next question is how to move between them. A priori, there is no reason to suspect this should even be possible: They live in completely different spaces! However, we can define a Riemannian metric on $M$ which, intuitively speaking, is an non-degenerate inner product on each tangent space. This is what the physicists call a metric (tensor). Non-degenerate inner products on finite dimensional vector spaces give a natural identification between the vector space and its dual. More precisely, if $\langle\cdot,\cdot\rangle: V \times V \to \mathbb R$ then we can define an isomorphism $V \to V^*$ by $v \mapsto \langle v, \cdot \rangle$ (You can actually more generally define what are called musical isomorphisms). In local coordinates, our inner product can be written (in Einstein convention) as $g^{ij}v_i \otimes v_j$ (or just $g^{ij}$ if we omit the vectors), and hence the isomorphism above corresponds to
$$ v \mapsto \langle v, \cdot \rangle , \qquad a_i \mapsto g^{ij} a_i.$$
Again by laziness, we avoid carrying around the metric tensor and just write $a^j = g^{ij}a_i$, which is the concept of contraction (better known to mathematicians as the interior product).
You can of course move the other direction as well. In local coordinates, the metric tensor $g^{ij}$ looks like an invertible matrix. Let $g_{ij}$ be its inverse, in which case $a_j = g_{ij} a^i$.
It is definitely a lot to take in, but if you understand the rigorous mathematics behind these things, the physics actually becomes significantly easier.
This is not a proper answer, but it might be useful anyway. It's just what I've found so far reading books and trying to make sense of everything I learned about vectors in both calculus and algebra.
You can geometrically picture vectors in $\mathbb{R}^n$ as arrows placed at the origin. Every vector can be uniquely expressed as a linear combination of $n$ linearly independent vectors, so for every basis of this vector space $(\vec{e}_1,\dots,\vec{e}_n)$ we can write:
$$
v=v^1 \vec{e}_1 + \cdots + v^n \vec{e}_n
$$
Although using a vector basis allows us to uniquely identify every vector in $\mathbb{R}^n$, it isn't really useful when trying to identify every "point" in $\mathbb{R}^n$ because of its limitations (your axes will have to be straight lines and will have to include the "canonical" origin).
In order to identify every point of $\mathbb{R}^n$ with more freedom, our first approach could be affine geometry. In $\mathbb{R}^n$ viewed as an affine space, we can define a coordinate system $(O,\mathcal{B})$, with $O$ a point in $\mathbb{R}^n$ and $\mathcal{B}$ a basis of $\mathbb{R}^n$ as a vector space. Axes are still straight lines, but now we can move from the origin to any other point $O$. This affine coordinate system is in a way a coordinate system, and it is definitely not the same as a basis — because $(O,\mathcal{B}) \neq \mathcal{B}$ — but we can do better.
We can define a system of $n$ equations (not necessarily linear, a system of linear equations would bring us back to the affine case) that uniquely identify every point in $\mathbb{R}^n$:
$$
x^i =\Phi^i(q^1,\dots,q^n), \space\space\space i=1,\dots,n
$$
This is precisely what we do when we define cylindrical or spherical coordinates: express $x,y,z$ in terms of three new variables ($\rho,\varphi,z$ and $r,\theta,\varphi$ respectively).
This means that the values $(q^1,\dots,q^n)$ will be our new coordinates. Note that, if this system were linear, we would need to require the coefficient matrix to have a non-zero determinant in order for this system to have a (unique) solution. For a general system of equations, by virtue of the implicit function theorem, the analogous condition is:
$$
\frac{\partial(x^1,\dots,x^n)}{\partial(q^1,\dots,q^n)} \neq 0
$$
i.e. the Jacobian of the transformation must be non-zero.
This new coordinates $(q^1,\dots,q^n)$ aren't related to any basis, but they induce one for every point $(q^1,\dots,q^n)$ in $\mathbb{R}^n$: the so-called coordinate basis of this coordinate system:
$$
\vec{v}_\mu = \frac{\partial\vec{\Phi}}{\partial q^\mu}
$$
In this sense, we can see than the components of the position vector at the point $p\in\mathbb{R}^n$ will be different from the coordinates of the point $p$ itself. The components depend on the coordinate basis (or any other basis which you define in terms of that one), while the coordinates of a point depend on the coordinate system itself.
In fact, now we're not talking about $\mathbb{R}^n$ as a vector space anymore, but this space does have a vector space attatched at every point, a vector space we call the tangent space at $p$: $T_p\mathbb{R}^n$. The coordinate basis at every point is the vector basis that our coordinate system induces for the tangent space at that point.
Note that the components of a vector (or a tensor, for that matter) may be called coordinates. I only see this when reading about pure vector spaces, without any sense of geometry, metrics or anything. For example, a matrix $A\in\mathcal{M}_{n\times n}$ which satisfies $\vec{v}_{\mathcal{B}'} = A\vec{v}_{\mathcal{B}}$ might be called a change of coordinates matrix (from the coordinates from $\mathcal{B}$ to the coordinates from $\mathcal{B}'$) or a change of basis matrix (from the basis $\mathcal{B}'$ to the basis $\mathcal{B}$, because it satisfies $\mathcal{B}'A=\mathcal{B}$, if we allow ourselves this abuse of notation).
Nonetheless, I always say components when referring to a vector (or tensor), and coordinates when referring to a point.
Best Answer
Let $V$ be an $n$-dimensional vector space over your favourite field with basis $e_1,\dotsc,e_n$ und $V^*$ its dual space with dual basis $e^1,\dotsc,e^n$.
Strictly speaking the vector spaces $V$ and $V^*$ do not have any vectors in common. But what is meant by “almost the same” is that there is an isomorphism of vector spaces $\varphi\colon V\rightarrow V^*$ defined by $\varphi(e_i) =e^i$ for $i=1,\dotsc,n$ (and extending by linearity). Under this isomorphism $x = \sum_{i=1}^n x^ie_i$ is mapped to $\varphi(x) = \sum_{i=1}^nx^i\varphi(e_i) = \sum_{i=1}^n x^ie^i$. So in your notation you have $x_i = x^i$ for the coefficients $x_i$ of $\varphi(x)$ with respect to the basis $e^1,\dotsc,e^n$.
Under the isomorphism $\varphi$ you identify $x$ and $\varphi(x)$ with each other, although they are not the same, as they live in different vector spaces.
Beware that the isomorphism $\varphi\colon V\rightarrow V^*$ depends heavily on your chosen basis $e_1,\dotsc,e_n$ of $V$. This means that without a basis of $V$ you cannot (easily) identify $V$ with its dual space $V^*$.