SI-785, type inference of stable identifiers in patterns.

Ticket SI-785 is fairly meaty, so don't try to understand
it from this commit message alone, but here is the summary as
expressed by ticket reporter lauri alanko:

  Object patterns currently behave differently both from other
  stable identifier patterns and from singleton type patterns.
  It is impossible to get similar matching for other stable
  names. The specification is greatly out of sync with the
  implementation.

The specification may have been greatly out of sync with the
implementation in April 2008, but in 2013 we call those "the good
old days." An attempt to implement these pattern matcher semantics
based on what is in the specification is useless.

So I agree with the reporter, for the reasons enumerated in the
ticket, that we fail to realize much of the value of singleton
types through bugs in the implementation, specification, or both.
Again quoting alanko:

  Singleton type patterns should be given special treatment to
  make them equivalent with the object patterns, and/or there
  should be a way to match non-object stable identifier patterns
  with as strong type refinements as object patterns get.