third_party: add libpg_query and sqlc

This adds sqlc, a SQL query code generator for Go (and other languages).
It in turn requires pganalyze's libpg_query, which is a C library for
parsing PostgreSQL queries.

To test:

   $ bazel build @com_github_kyleconroy_sqlc//cmd/sqlc

In the future this will be used by Bazel rules to generate sources at
build time.

Change-Id: I369c9ab503e8ce6952fd3f73c233dd3d59922358
Reviewed-on: https://review.monogon.dev/c/monogon/+/882
Tested-by: Jenkins CI
Reviewed-by: Leopold Schabel <leo@monogon.tech>
diff --git a/third_party/libpg_query/README.md b/third_party/libpg_query/README.md
new file mode 100644
index 0000000..d86b7d4
--- /dev/null
+++ b/third_party/libpg_query/README.md
@@ -0,0 +1,19 @@
+libpg\_query
+===
+
+This library provides a C API to parse postgres queries. It consists of some vendored PostgreSQL source code and wrapper header/sources.
+
+Licensing
+---
+
+ * libpg\_query itself: BSD 3-clause
+ * xxhash: BSD 2-clause
+ * protobuf-c: BSD 2-clause (not named, but terms are equal)
+ * PostgreSQL: PostgreSQL license (similar to MIT)
+
+Known Issues
+---
+
+This library has a very wide include path requirement, that includes its own vendor directories (which contain postgres, xxhash and protobuf-c). These includes are pulled into all dependendents of this library and might break anything that wants eg. both libpg\_query and xxhash. When this happens, we should patch the library to always use absolute includes instead, thereby cleaning up the include directives. We technically have `bazel_cc_fix` for that.
+
+We could also unvendor xxhash, protobuf-c and even postgres. But that might not be worth the effort right now.