cue: hoist literal string parsing into new package

This allows the parser and potentially other packages
to use this code without causing cycles.

Change-Id: I3df9f4a83109757f959adaecdccbc144a4975f61
diff --git a/cue/ast.go b/cue/ast.go
index 0f3086d..3ca7fd5 100644
--- a/cue/ast.go
+++ b/cue/ast.go
@@ -16,11 +16,11 @@
 
 import (
 	"fmt"
-	"strconv"
 	"strings"
 
 	"cuelang.org/go/cue/ast"
 	"cuelang.org/go/cue/build"
+	"cuelang.org/go/cue/literal"
 	"cuelang.org/go/cue/token"
 )
 
@@ -131,7 +131,7 @@
 	if !isBottom(val) {
 		return val
 	}
-	path, err := strconv.Unquote(imp.Path.Value)
+	path, err := literal.Unquote(imp.Path.Value)
 	if err != nil {
 		return ctx.mkErr(newNode(imp), "illformed import spec")
 	}
@@ -383,7 +383,7 @@
 		}
 		lit := &interpolation{baseValue: newExpr(n), k: stringKind}
 		value = lit
-		info, prefixLen, _, err := ParseQuotes(first.Value, last.Value)
+		info, prefixLen, _, err := literal.ParseQuotes(first.Value, last.Value)
 		if err != nil {
 			return v.error(n, "invalid interpolation: %v", err)
 		}