Include the Duo type in the name of Duo integrations

Eventually, there will be multiple object types for different Duo
integrations, and they will need to have unique names.  Add the
Duo type in parentheses after the name to help ensure this.

Change-Id: I679130f9136077fc6bf5d8c6c9ad98ec83b400d0
Reviewed-on: https://gerrit.stanford.edu/1573
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
Parse the Duo key_file in relaxed JSON mode

When reading the Duo object configuration to retrieve the Duo
admin server, parse the JSON in relaxed mode to match the behavior
of Net::Duo itself.  Otherwise, we get hung up on trailing commas
that Net::Duo doesn't care about.

Change-Id: I0a7347b22e379fe5dfe5fdabaec3e23420cf9a63
Reviewed-on: https://gerrit.stanford.edu/1574
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
Go back to recording the ADMIN ACL in history

This turned out to not be necessary for testing since I was already
using sqlite3 to load an unversioned schema.  Remove the offending
line and restore the old code with some cleanup.

Change-Id: I282b6f3b4754e4899222be6366b77a47f0cb7189
Reviewed-on: https://gerrit.stanford.edu/1575
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>
Register the duo object type on database creation

Change-Id: I1c53e0503b29d7add289d26e67b11f9789ba8ad8
Reviewed-on: https://gerrit.stanford.edu/1576
Reviewed-by: Russ Allbery <rra@stanford.edu>
Tested-by: Russ Allbery <rra@stanford.edu>