Update (#749)

Update:

 * Bazel: fix MSVC configuration
 * C: common: extended documentation and helpers around distance codes
 * C: common: enable BROTLI_DCHECK in "debug" builds
 * C: common: fix implicit trailing zero in `kPrefixSuffix`
 * C: dec: fix possible bit reader discharge for "large-window" mode
 * C: dec: simplify distance decoding via lookup table
 * C: dec: reuse decoder state members memory via union with lookup table
 * C: dec: add decoder state diagram
 * C: enc: clarify access to static dictionary
 * C: enc: improve static dictionary hash
 * C: enc: add "stream offset" parameter for parallel encoding
 * C: enc: reorganize hasher; now Q2-Q3 require exactly 256KiB
           to avoid global TCMalloc lock
 * C: enc: fix rare access to uninitialized data in ring-buffer
 * C: enc: reorganize logging / checks in `write_bits.h`
 * Java: dec: add "large-window" support
 * Java: dec: improve speed
 * Java: dec: debug and 32-bit mode are now activated via system properties
 * Java: dec: demystify some state variables (use better names)
 * Dictionary generator: add single input mode
 * Java: dec: modernize tests
 * Bazel: js: pick working commit for closure rules
diff --git a/BUILD b/BUILD
index 4ce4ad4..fa8ac13 100644
--- a/BUILD
+++ b/BUILD
@@ -39,11 +39,9 @@
     visibility = ["//visibility:public"],
 )
 
-config_setting(
-    name = "msvc",
-    values = {"compiler": "msvc-cl"},
-    visibility = ["//visibility:public"],
-)
+load(":compiler_config_setting.bzl", "create_msvc_config")
+
+create_msvc_config()
 
 STRICT_C_OPTIONS = select({
     ":msvc": [],