Add hook methods to analysis.Frame for branch-sensitive analyses

Adds two hook methods to `analysis.Frame`, called by `Analyzer.analyze`.
These methods are called on the temporary `currentFrame` before it is
merged with the existing frame at the branch target.

Overriding these methods allows implementing branch-sensitive analyses,
for example for nullness.
1 job for branch-sensitive in 8 minutes and 36 seconds (queued for 3 seconds)