Add "Force Mark as Read" feature

This change adds a feature to the extension which will mark all threads
as open when visiting them from the Community Console.

This works by making a request to load the thread again (so the
extension knows the last message ID) and then making a request to mark
the thread manually as read, passing the last message ID so the
Community Console knows that's the last message we've read. This last
request is the one which is made when manually marking a thread as read
from the thread list.

This change also adds the file api.js with a wrapper function to call
the Community Console API. In the future, all API calls should use this
function.

Change-Id: Iff1c077bf136807cdbaa710e2e6b8b130df3a27e
diff --git a/src/_locales/en/messages.json b/src/_locales/en/messages.json
index 09881d9..16c0e0f 100644
--- a/src/_locales/en/messages.json
+++ b/src/_locales/en/messages.json
@@ -111,6 +111,10 @@
     "message": "Force disable the <code class=\"help\" title=\"This experiment, when enabled, introduces a redesign of the profile view which also unifies all forum profiles into a single one.\">SMEI_UNIFIED_PROFILES</code> experiment in the Community Console.",
     "description": "Feature checkbox in the options page"
   },
+  "options_forcemarkasread": {
+    "message": "Each time you open a thread in the Community Console, automatically send a request to mark it as read. This is a temporary option used to work around <a href=\"https://support.google.com/s/community/forum/51488989/thread/114559215\" target=\"_blank\" rel=\"noreferrer noopener\">this bug</a>.",
+    "description": "Feature checkbox in the options page"
+  },
   "options_profileindicator_header": {
     "message": "Indicator dot",
     "description": "Heading for the profile indicator feature options"