Use `Path` instead of string for file paths

This centralizes verification and common operations, like converting the
path to a source file to the path for a built object.

It also embeds the configuration knowledge into the path, so that we can
remove "${SrcDir}/path" from the ninja file. When SrcDir is '.', that
leads to paths like './path' instead of just 'path' like make is doing,
causing differences in compiled binaries.

Change-Id: Ib4e8910a6e867ce1b7b420d927c04f1142a7589e
diff --git a/Android.bp b/Android.bp
index 52bdc7c..b6f6a63 100644
--- a/Android.bp
+++ b/Android.bp
@@ -98,10 +98,14 @@
         "common/glob.go",
         "common/module.go",
         "common/mutator.go",
+        "common/package_ctx.go",
         "common/paths.go",
         "common/util.go",
         "common/variable.go",
     ],
+    testSrcs: [
+        "common/paths_test.go",
+    ],
 }
 
 bootstrap_go_package {