Implement embargo in PermissionDecisionAutoBlocker

Creates an embargo state for a permission request for a given origin. An
origin will remain under embargo for a certain amount of time, where any
requests it makes for the permission it is under embargo for will be
automatically blocked. After the embargo state is lifted, it will either
be allowed to request permissions again, or be placed under embargo
again if it remains blacklisted by Safe Browsing. In future, there may
be more cases for assigning the embargo state, but for now it is just
for Permissions Blacklisting.

The embargo state is stored as a date for when the embargo was placed,
which is kept inside the permission dictionary for the given
origin and profile.

BUG=679877

Review-Url: https://codereview.chromium.org/2622983003
Cr-Commit-Position: refs/heads/master@{#444616}
5 files changed