Fix nullness analysis in TypeTightener.

(1) Makes the CanPotentiallySeeUninitializedFields analysis available
    in TypeTightener to fix an unsafe assumption when computing
    nullability.
(2) Fixes a bug in CanPotentiallySeeUninitializedFields:
    - instance initializer was incorrectly analyzed; the analysis
      assumed $$init was the instance initializer whereas it was
      the devirtualized instance initializer.
(3) Improves the strength of the analysis by explicitly checking whether
    a "this" reference (or its devirtualized version) is used for a
    polymorphic call, involved in the parameters to static calls or
    involved in an expression that may create an alias to it.
(4) Adds some missing optimizations related to nullability.

Change-Id: I7a14112af353d50c4d83a2a31f47b1138488586e
13 files changed