Add flatbuffer Matrix table and library

This makes it easier to pack Eigen matrices into flatbuffers for use in
constants files, AOS messages, etc.

Change-Id: Icd1f5d9d3e57821c2aa21eef03d52e67f80faa69
Signed-off-by: James Kuszmaul <jabukuszmaul+collab@gmail.com>
diff --git a/frc971/math/BUILD b/frc971/math/BUILD
new file mode 100644
index 0000000..54df5bd
--- /dev/null
+++ b/frc971/math/BUILD
@@ -0,0 +1,29 @@
+load("//aos/flatbuffers:generate.bzl", "static_flatbuffer")
+
+static_flatbuffer(
+    name = "matrix_fbs",
+    srcs = ["matrix.fbs"],
+    visibility = ["//visibility:public"],
+)
+
+cc_library(
+    name = "flatbuffers_matrix",
+    hdrs = ["flatbuffers_matrix.h"],
+    visibility = ["//visibility:public"],
+    deps = [
+        ":matrix_fbs",
+        "//aos:json_to_flatbuffer",
+        "@com_github_google_glog//:glog",
+        "@com_github_tartanllama_expected",
+        "@org_tuxfamily_eigen//:eigen",
+    ],
+)
+
+cc_test(
+    name = "flatbuffers_matrix_test",
+    srcs = ["flatbuffers_matrix_test.cc"],
+    deps = [
+        ":flatbuffers_matrix",
+        "//aos/testing:googletest",
+    ],
+)