In GetPartiallyDesugaredType, properly handle the case where the typedef and its target are in different scope and the case where the typedef (or the type) has a partially qualified name (we need to complete it) and  double check that we do not have :: in front.
In GetPartiallyDesugaredType, properly handle the case where the typedef and its target are in different scope
and the case where the typedef (or the type) has a partially qualified name (we need to complete it) and 
double check that we do not have :: in front.

This fixes the result when scanning through:

class Embedded_objects {
public:
  typedef std::vector<int> vecint;
  vecint::iterator m_iter;
  typedef vector<int> vecint2;
  vecint2::iterator m_iter2;
};

namespace NS1 {
  namespace NS2 {
    namespace NS3 {
      class Point {};
      class Inner3 {
      public:
        Point p1;
        NS3::Point p2;
        ::NS1::NS2::NS3::Point p3;
      };
    }
  }
}

Also remove some llvm:: and clang::


git-svn-id: acec3fd5b7ea1eb9e79d6329d318e8118ee2e14f@48792 27541ba8-7e3a-0410-8455-c3a389f83636

perovic/cling,root-mirror/cling,perovic/cling,root-mirror/cling,karies/cling,marsupial/cling,marsupial/cling,root-mirror/cling,marsupial/cling,marsupial/cling,marsupial/cling,karies/cling,karies/cling,root-mirror/cling,marsupial/cling,perovic/cling,perovic/cling,karies/cling,karies/cling,karies/cling,root-mirror/cling,perovic/cling,root-mirror/cling