[Fix] Avoid polluting global namespace in headers.

"using namespace std;" imports all the std namespace to the
current translation unit. We should not impose importing
the std namespace to other developers so we should avoid
using that expression in public headers.

Therefore, all the "using namespace std" declarations have been
moved to internal sources. Explicit calls have been used in
headers instead (i.e. std::cout instead of cout).