Add credential checks

This change adds authentication/credential checks to sensitive API
methods, depending on the access level granted to the authenticated
user. It also adds the logic to save the authenticated user to the audit
log entries.

Note: the protobuf definitions were updated in a backwards-incompatible
way (KillSwitchAuthorizedUser.AccessLevel enum). This can be done since
this product hasn't yet launched.

Fixed: twpowertools:46
Change-Id: I9bf888d6108f463369143610d4bd5b256035b68f
diff --git a/go.mod b/go.mod
index b56fa0d..35d81e7 100644
--- a/go.mod
+++ b/go.mod
@@ -3,8 +3,10 @@
 go 1.16
 
 require (
-	github.com/Masterminds/semver/v3 v3.1.1 // indirect
+	github.com/Masterminds/semver/v3 v3.1.1
+	github.com/ReneKroon/ttlcache/v2 v2.8.0
 	github.com/go-sql-driver/mysql v1.6.0
+	google.golang.org/api v0.54.0
 	google.golang.org/grpc v1.40.0
-	google.golang.org/protobuf v1.25.0
+	google.golang.org/protobuf v1.27.1
 )