Finalize 2017.1

Updated CHANGES to cover main updates since 2017.0
diff --git a/CHANGES b/CHANGES
index 690a440..b2e4259 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,33 +1,71 @@
 Revision history for SPIRV-Tools
 
-v2017.1-dev 2017-09-01
+v2017.1 2017-11-23
  - Update README with details on the public_spirv_tools_dev@khronos.org mailing list.
  - General:
+   - Automatically deploy built artifacts to GitHub Releases
+   - Add a Linker (module combiner). Under development.
+   - Add Android.mk for Android NDK builds.
    - Add the 'effcee' library as an optional dependency for use in tests.
      Eventually it will be a required dependency, once downstream projects have
-     a chance to adjust.
+     a chance to adjust.  Requires 're2' library.
    - Avoid static-duration variables of class type (with constructors).
+   - Hack around bugs in gcc-4.8.1 template handling
+   - Faster opcode lookup
  - Validator:
-   - Type check basic arithmetic operations
-   - Type check Relational and Logical instructions
-   - Type check Bit instructions
-   - OpModuleProcessed is only allowed after debug names section and before annotations
-     section.
    - Recognize extensions listed on SPIR-V registry,
      through #25 SPV_AMD_shader_fragment_mask
+   - Validator issues an info message when it sees an unrecognized extension.
+   - Type check basic arithmetic operations
+   - Type check carry/extended arithmetic operations
+   - Type check vector arithmetic operations
+   - Type check Relational and Logical instructions
+   - Type check Bit instructions
+   - Check type uniqueness rules
+   - Check conversion instructions
+   - Check image instructions
+   - Check derivative instructions
+   - Check OpVectorShuffle
+   - Check OpBranchConditional
+   - OpModuleProcessed is only allowed after debug names section and before annotations
+     section.
+   - Checks the right kind of return is called for each function (void or non-void).
+   - Add option to relax type check when storing structs (--relax-store-struct)
  - Optimizer:
-   - Add eliminater-dead-function transform
+   - Refactoring internal representation of the module, including:
+     - IRContext: owns a module and manages analyses
+     - Instructions are owned by intrusive lists, and have unique IDs
+     - BasicBlock owns its instruction list.
+     - DefUseManager: change representation of uses, for faster processing
+       on large modules.
+   - Add high level recipes: -O, -Os, and -Oconfig
+     Recipes for -O and -Os are under development.
+   - Add eliminate-dead-function transform
    - Add strength reduction transform: For now, convert multiply by power of 2
      to a bit shift.
-   - Extract-insert elimination: Recognize the case where the first instruction
-     in the sequence is an OpCompositeConstruct or OpConstantComposite
+   - Add CFG cleanup transform
+   - Add removal of dead module-scope variables
+   - Add merge-return transform for modules without structured control flow
+   - Add redundancy elimination within a basic block (local value numbering)
+   - Extract-insert elimination:
+     - Recognize the case where the first instruction in the sequence is an
+       OpCompositeConstruct or OpConstantComposite
+     - Handle some cases of nested structs
+   - Dead branch elimination now can eliminate entire selection constructs
+     when all arms are dead.
+ - Compressing codec:
+   - Updated algorithm to 1.01, 1.02, 1.03
+   - Not built by default.  Use -DSPIRV_BUILD_COMPRESSION=ON to build.
+   - Codec can be parameterized by a customized model.
  - Fixes:
+   #728: Fix decoration of inlined functions
    #798: spirv-as should fail when given unrecognized long option
    #800: Inliner: Fix inlining function into header of multi-block loop
    #824: Eliminate-local-multi-store: Fix a crash
    #826: Elimiante-local-multi-store: Fix a crash
    #827: Fix crash when compact-ids transform runs before another transform.
    #834: Add Cmake option to build the compressing codec. Off by default.
+   #911: Fix classification of Line and NoLine instructions
 
 v2017.0 2017-09-01
  - Update README to describe that assembler, disassembler, and binary parser support