Adding <keygen> Content Setting (core)

Adding the KEYGEN content setting type and core functionality.

---

The purpose of the content setting is to disable <keygen> usage by default, while allowing user and enterprise settings to selectively enable <keygen>. This is early UI gating prior to the deprecation of <keygen>.

From UX discussions, we'd like to use a Page Action presented on the form rendering in order to allow the user to change the key generation settings of the page. The content setting will then determine whether the OnKeygen call actually runs the crypto to generate and store the keys.

blink-dev Thread:
https://groups.google.com/a/chromium.org/d/msg/blink-dev/pX5NbX0Xack/kmHsyMGJZAMJ

---

BUG=514767

Review URL: https://codereview.chromium.org/1417173010

Cr-Commit-Position: refs/heads/master@{#359950}
15 files changed