Clarify namespaces.
Add workaround for MSVC linkage bug.

MSVC seems to be confused by definitions of std::vector<Vector3D> in more
than one file. Work around this by moving such usage into a single file.