* cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/db.go,
  openpgp/io.go, openpgp/loader.go, openpgp/pubkey.go,
  openpgp/resolve.go, openpgp/resolve_test.go, openpgp/schema.go,
  openpgp/types.go, openpgp/unsupp.go, openpgp/worker.go:
  - Bulk load without constraints, afterward delete duplicates and add
    constraints. LP: #1208295
  - Add unsupported packet record for storing packets that
    go.crypto won't parse but SKS includes in key hashing. LP: #1208290
Fix unsupported loading.
* cmd/hockeypuck-import/main.go, openpgp/db.go, openpgp/io.go,
  openpgp/loader.go, openpgp/pubkey.go, openpgp/resolve.go,
  openpgp/resolve_test.go, openpgp/schema.go, openpgp/signature.go,
  openpgp/subkey.go, openpgp/types.go, openpgp/unsupp.go,
  openpgp/userattribute.go, openpgp/userid.go:
  - Support optionally dropping and recreating indexes & constraints
    with hockeypuck-import.
    Silently ignore duplicate error when adding constraints.
    Corrected de-duplication of unique keys. LP: #1208295
  - Track record prior to unsupported, use to make unparseable
    content positionally unique. Added PacketRecord.Uuid() to support.
    Add unsupported packet parsing unit test case. LP: #1208290
  - Capture primary UserId and UserAttribute, revocation signatures
    during initial insert. LP: #1195901
  - Packet-type specific scoped digest calculation.
* cmd/hockeypuck-import/main.go, openpgp/db.go, openpgp/io.go,
  openpgp/loader.go, openpgp/pubkey.go, openpgp/resolve.go,
  openpgp/resolve_test.go, openpgp/schema.go, openpgp/signature.go,
  openpgp/subkey.go, openpgp/types.go, openpgp/unsupp.go,
  openpgp/userattribute.go, openpgp/userid.go:
  - Support optionally dropping and recreating indexes & constraints
    with hockeypuck-import.
    Silently ignore duplicate error when adding constraints.
    Corrected de-duplication of unique keys. LP: #1208295
  - Track record prior to unsupported, use to make unparseable
    content positionally unique. Added PacketRecord.Uuid() to support.
    Add unsupported packet parsing unit test case. LP: #1208290
  - Capture primary UserId and UserAttribute, revocation signatures
    during initial insert. LP: #1195901
  - Packet-type specific scoped digest calculation.
* openpgp/resolve_test.go, openpgp/responses.go, openpgp/sort.go,
  openpgp/userattribute.go, openpgp/userid.go:
  - Add function to sort public key contents for display purposes,
    unit test case. LP: #1195901
  - Fixed uid/uat revocation signature logic, so that a newer
    positive certification overrides a revocation. Tracking the newest
    revocation & self-signatures.
  - Fix timestamp rendering in options=mr.
* openpgp/resolve_test.go, openpgp/responses.go, openpgp/sort.go,
  openpgp/userattribute.go, openpgp/userid.go:
  - Add function to sort public key contents for display purposes,
    unit test case. LP: #1195901
  - Fixed uid/uat revocation signature logic, so that a newer
    positive certification overrides a revocation. Tracking the newest
    revocation & self-signatures.
  - Fix timestamp rendering in options=mr.
* openpgp/add.go, openpgp/io.go, openpgp/loader.go, openpgp/pubkey.go,
  openpgp/resolve.go, openpgp/resolve_test.go, openpgp/subkey.go,
  openpgp/types.go, openpgp/types_test.go, openpgp/unsupp.go,
  openpgp/userattribute.go, openpgp/userid.go, openpgp/worker.go:
  - Parse first in blocks of opaque packets delimited by tag=6
    public key, then interpret.
  - Reject keyrings missing signatures on syntactic basis like SKS.
  - Flag invalid selfsigs, but do not remove them, for compatibility
    with SKS.
  - Store unsupported key material in openpgp_pubkey.unsupp column.
* openpgp/io.go, openpgp/resolve_test.go, openpgp/schema.go:
  - Fix parsing unit tests wrt latest changes, address corner cases
    such as missing public key, empty keyring material.
  - Remove openpgp_unsupp table, constraints from schema.
* openpgp/io.go, openpgp/io_test.go, openpgp/pubkey.go,
  openpgp/resolve.go, openpgp/resolve_test.go, openpgp/signature.go,
  openpgp/subkey.go, openpgp/testdata/0ff16c87.asc, openpgp/types.go,
  openpgp/types_test.go, openpgp/userattribute.go, openpgp/userid.go,
  openpgp/worker_test.go:
  - Move packet record parsing into each type's creator function.
  - Store content-duplicate packets as unsupported key material
    for SKS compatibility.
  - Validate function now removes packets without any signatures,
    emulate keyMerge.ml behavior.
* openpgp/add.go, openpgp/io.go, openpgp/loader.go, openpgp/pubkey.go,
  openpgp/resolve.go, openpgp/resolve_test.go, openpgp/subkey.go,
  openpgp/types.go, openpgp/types_test.go, openpgp/unsupp.go,
  openpgp/userattribute.go, openpgp/userid.go, openpgp/worker.go:
  - Parse first in blocks of opaque packets delimited by tag=6
    public key, then interpret.
  - Reject keyrings missing signatures on syntactic basis like SKS.
  - Flag invalid selfsigs, but do not remove them, for compatibility
    with SKS.
  - Store unsupported key material in openpgp_pubkey.unsupp column.
* openpgp/io.go, openpgp/resolve_test.go, openpgp/schema.go:
  - Fix parsing unit tests wrt latest changes, address corner cases
    such as missing public key, empty keyring material.
  - Remove openpgp_unsupp table, constraints from schema.
* openpgp/io.go, openpgp/io_test.go, openpgp/pubkey.go,
  openpgp/resolve.go, openpgp/resolve_test.go, openpgp/signature.go,
  openpgp/subkey.go, openpgp/testdata/0ff16c87.asc, openpgp/types.go,
  openpgp/types_test.go, openpgp/userattribute.go, openpgp/userid.go,
  openpgp/worker_test.go:
  - Move packet record parsing into each type's creator function.
  - Store content-duplicate packets as unsupported key material
    for SKS compatibility.
  - Validate function now removes packets without any signatures,
    emulate keyMerge.ml behavior.
* cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/loader.go,
  openpgp/recon.go:
  - Loader and worker now require explicit transaction control.
  - hockeypuck-import supports # of keys per commit into openpgp.
    Prefix tree drop/build support.
* cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/loader.go,
  openpgp/recon.go:
  - Loader and worker now require explicit transaction control.
  - hockeypuck-import supports # of keys per commit into openpgp.
    Prefix tree drop/build support.
* cmd/hockeypuck-import/main.go, openpgp/loader.go:
  - Check for commit error, open new transaction on loader commit
    or rollback.
* cmd/hockeypuck-import/main.go, openpgp/loader.go:
  - Check for commit error, open new transaction on loader commit
    or rollback.
* cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/loader.go,
  openpgp/worker.go:
  - Improve transaction management. Support v2/v3 16-byte key
    lookup.
* cmd/hockeypuck-import/main.go, openpgp/add.go, openpgp/loader.go,
  openpgp/worker.go:
  - Improve transaction management. Support v2/v3 16-byte key
    lookup.
* cmd/hockeypuck-import/main.go, openpgp/io.go, openpgp/pubkey.go,
  openpgp/resolve_test.go,
  openpgp/testdata/0xd46b7c827be290fe4d1f9291b1ebc61a.asc,
  openpgp/worker_test.go:
  - Wait for prefix tree goroutine to complete before adding
    constraints during bulk load.
  - Do not remove packets missing self-signatures. SKS keeps them
    for recon hashing. Flagging them to remove from HKP output.
  - Add testcase for key missing uid signatures.
  - Add transaction Begin and Commit to worker insert test case.
* openpgp/loader.go, util/strings.go:
  - Clean UTF-8 UID keyword string for PostgreSQL compatibility.
  - Remove non-printable control characters.
* openpgp/io.go, openpgp/io_test.go, openpgp/pubkey.go:
  - Dump bad key causing panic to tempdir.
  - Added unit test with unsupported public key algorithm.
  - Revert to initUnsupported if parsing as V3 or V4 pubkey fails.
* openpgp/recon.go:
  - Use diskv prefix-tree storage for recon.