Use existing transformation for PTS as barrier ID.  Fixes #77

The change is actually smaller than it looks, and just ensures
that when the barrier ID is a pointer-to-shared, we use the
existing logic for the converstion to int.

Here it is with "git diff -w":

@@ -517,6 +517,9 @@ namespace {
       if(isAnon) {
        ID = IntegerLiteral::Create(Context, APInt(32, 0), Context.IntTy, SourceLocation());
       } else if (ImplicitCastExpr *ICE = dyn_cast<ImplicitCastExpr>(ID)) {
+       if(isPointerToShared(ICE->getSubExpr()->getType())) {
+         ID = TransformExpr(ID).get();
+       } else {
          ID = TransformExpr(ICE->getSubExpr()).get();
          TypeSourceInfo *Type;
          if(ICE->getCastKind() == CK_PointerToIntegral) {
@@ -526,6 +529,7 @@ namespace {
          }
          Type = Context.getTrivialTypeSourceInfo(Context.IntTy);
          ID = SemaRef.BuildCStyleCastExpr(SourceLocation(), Type, SourceLocation(), ID).get();
+       }
       } else {
        ID = TransformExpr(ID).get();
       }