Similarly to #15856, moves lib/ protos (except for Connect) under the proto/ tree.
The intended layout is a mirror of api:
```
teleport-root
proto/ <- root for protos and proto imports
teleport/
lib/...
gen/proto/go/ <- ideal root for generated protos
```
#15187
* Move lib/ protos under the proto/ tree
* Reformat protos
* Update generated protos
An extra dockerfile for gRPC generation is extra maintenance burden. It
was also using a really old base image that has a ton of known vulns.
Also, update GOGO_PROTO_TAG to match the version we have vendored via
go.mod.
Each user can now have multiple devices. This commit only changes the
backend structure to support it, the client and API haven't been updated
yet.
Also added a migration for existing MFA data on auth server startup.
This helps with ELB and similar L5 load balancers that don't respect
TCP-level keep-alives. ELB for example kills connections after 60s of no
application traffic.
With this PR, you can leave a `kubectl exec` session open indefinitely
without any activity.