Definition and visualization of a covector Covector: A linear map from some set of vectors into real numbers. Also, on its own, it is an element of a vector space. 
Visualisation: visualize a covector as a stack of hypersurfaces of some density. Operationally a map is described as arrow vector piercing this stack of (hyper)surfaces in some way. Output is a number of (hyper)surfaces pierced. Why this particular visualization? Why not some other?
 A: The stacks of surfaces picture is just a helpful way of visualizing a covector which is compatible with the usual picture of vectors as arrows. Since a covector takes a vector and gives back a number, in the stacks of surfaces picture when you place a vector (an arrow), it intersects a few surfaces which corresponds to the number given as output. By changing either the length or the orientation of the arrow, you intersect different number of surfaces meaning you get a different output. Hence its just a helpful picture to have of covectors but isn’t really useful for computation purposes. 
Your idea about vector being a covector is kind of right. Precisely for finite dimensional vector spaces, there is an isomorphism between a vector space and the dual vector space (the space of covectors). However there are multiple isomorphisms and no canonical one. 
Given a metric, you then have a canonical isomorphism. Suppose $g:V \times V \to \mathbb{R}$ is your metric. Then for a vector $v\in V$ , $g(v,-):V \to \mathbb{R}$ is a linear functional and hence is a covector. Call this covector $\omega$. Then for each vector you have a corresponding covector by this identification. 
However note a vector and covector are kind of same but not exactly same. The difference lies in the transformations properties. Suppose you have a basis for your vector space and your vector $v=(v_1,v_2,\dots,v_n)$ in this basis and you have a covector $\omega=(\omega_1, \omega_2, \dots, \omega_n)$ in the corresponding dual basis. Then $\omega(v) = \omega_1 v_1+\omega_2 v_2+\dots +\omega_n v_n$ which is a scalar (doesn’t transform when a basis is changed). Suppose you make a change of basis to your vector space. Then the components of your vector transform in a certain way and the components of a covector transform in the opposite way so as to keep the value of $\omega(v)$ the same.
