[ownership] Refactor linear lifetime checker so that it doesnt require a value (only a beginBlock).
[ownership] Refactor linear lifetime checker so that it doesnt require a value (only a beginBlock).

NFCI.

The checker internally doesn't actually use the value for anything except for
diagnostics and getting the value's parent block. So what this commit does is
change the value to be optional state that is used in the diagnostics if it is
available and otherwise uses its own ptr to the beginBlock. This will allow me
to make two different constructors, one that takes a value (and sets the
beginBlock ptr to its own parent block) and one that just takes a block. In
certain cases, basing it off of the value can lead to counter-intuitive bugs
(esp if code is using Builder.emit*ValueOperation() to create retain/release in
non-ossa code).

The reason why I am doing this is I want to introduce a higher level API on top
of this for a common pattern in ossa (and code written for both modes): lifetime
extending a value from a use point to a later program point by using a copy. I
will explain this in more detail in a forthcoming commit.

stephentyrone/swift,JGiola/swift,rudkx/swift,glessard/swift,CodaFi/swift,allevato/swift,CodaFi/swift,karwa/swift,parkera/swift,harlanhaskins/swift,parkera/swift,gribozavr/swift,benlangmuir/swift,gregomni/swift,apple/swift,benlangmuir/swift,roambotics/swift,hooman/swift,sschiau/swift,parkera/swift,JGiola/swift,lorentey/swift,JGiola/swift,parkera/swift,jmgc/swift,gregomni/swift,karwa/swift,hooman/swift,parkera/swift,benlangmuir/swift,hooman/swift,aschwaighofer/swift,sschiau/swift,lorentey/swift,aschwaighofer/swift,hooman/swift,atrick/swift,gribozavr/swift,stephentyrone/swift,allevato/swift,nathawes/swift,glessard/swift,lorentey/swift,CodaFi/swift,airspeedswift/swift,apple/swift,atrick/swift,glessard/swift,jckarter/swift,gregomni/swift,stephentyrone/swift,tkremenek/swift,karwa/swift,allevato/swift,karwa/swift,apple/swift,nathawes/swift,nathawes/swift,glessard/swift,JGiola/swift,karwa/swift,devincoughlin/swift,jckarter/swift,allevato/swift,benlangmuir/swift,apple/swift,stephentyrone/swift,harlanhaskins/swift,rudkx/swift,xwu/swift,stephentyrone/swift,allevato/swift,harlanhaskins/swift,hooman/swift,CodaFi/swift,atrick/swift,lorentey/swift,roambotics/swift,xwu/swift,jmgc/swift,xwu/swift,harlanhaskins/swift,JGiola/swift,airspeedswift/swift,hooman/swift,glessard/swift,rudkx/swift,airspeedswift/swift,rudkx/swift,lorentey/swift,devincoughlin/swift,ahoppen/swift,jmgc/swift,tkremenek/swift,nathawes/swift,ahoppen/swift,tkremenek/swift,allevato/swift,jmgc/swift,atrick/swift,rudkx/swift,harlanhaskins/swift,jckarter/swift,harlanhaskins/swift,stephentyrone/swift,glessard/swift,sschiau/swift,gribozavr/swift,aschwaighofer/swift,aschwaighofer/swift,devincoughlin/swift,benlangmuir/swift,atrick/swift,apple/swift,gribozavr/swift,nathawes/swift,roambotics/swift,aschwaighofer/swift,hooman/swift,devincoughlin/swift,airspeedswift/swift,sschiau/swift,jmgc/swift,ahoppen/swift,nathawes/swift,roambotics/swift,karwa/swift,jmgc/swift,gribozavr/swift,airspeedswift/swift,sschiau/swift,tkremenek/swift,jckarter/swift,xwu/swift,tkremenek/swift,airspeedswift/swift,gregomni/swift,roambotics/swift,ahoppen/swift,apple/swift,sschiau/swift,tkremenek/swift,devincoughlin/swift,devincoughlin/swift,lorentey/swift,JGiola/swift,tkremenek/swift,jmgc/swift,stephentyrone/swift,CodaFi/swift,atrick/swift,parkera/swift,gribozavr/swift,devincoughlin/swift,ahoppen/swift,benlangmuir/swift,xwu/swift,karwa/swift,parkera/swift,harlanhaskins/swift,gribozavr/swift,sschiau/swift,lorentey/swift,aschwaighofer/swift,allevato/swift,jckarter/swift,parkera/swift,rudkx/swift,jckarter/swift,airspeedswift/swift,jckarter/swift,gregomni/swift,devincoughlin/swift,CodaFi/swift,aschwaighofer/swift,CodaFi/swift,ahoppen/swift,xwu/swift,xwu/swift,sschiau/swift,gribozavr/swift,karwa/swift,gregomni/swift,roambotics/swift,nathawes/swift,lorentey/swift