Write a SpacetimeDB backend module in C# that implements a one-time admin bootstrap pattern.

TABLES
- Config
  - Struct: Config
  - private table
  - Fields:
    - Id: uint (primary key)
    - Admin: Identity

- AdminLog
  - Struct: AdminLog
  - public table
  - Fields:
    - Id: ulong (primary key, AutoInc)
    - Action: string

REDUCERS
- BootstrapAdmin(ctx)
  - If a Config row already exists (Id = 0), throw exception with "already bootstrapped"
  - Otherwise insert Config { Id = 0, Admin = ctx.Sender }

- AdminAction(ctx, string action)
  - Load the Config row with Id = 0; if missing, throw exception with "not bootstrapped"
  - If ctx.Sender does not equal config.Admin, throw exception with "not admin"
  - Insert an AdminLog row with the given Action, Id = 0 for AutoInc
