more transparent analysis

1. It was unsound to share results via instance relation. Equiv relation is used now.
2. It was a race between Final(bot) and Final(top) in contract analysis. Now there is no early return here, all graph is constructed.
3. Fix in solver.
production and debug annotations
more convenient debug annotations
more convenient use of debug annotations in main
major fix: always reset dereferenced
all exceptions - including NPE - are treated as bottom now

Finally consistent analysis - analysis in any order gives the same result.
delta in annotations
NPE fix - take into account dead instructions
measuring what happens under the hood

It turns out that push/pop for actions is needed only for 10-15% of all actions (processed vs non-local processed). Is it optimizable?

[info] indexing took 83.948 sec
[info] solving took 3.168 sec
[info] saving took 11.576 sec
[info] 388753 all contracts
[info] 146850 prod contracts
[info] 9041052 shared confs
[info] 11799660 non-shared confs
[info] 1991010 eff shared
[info] 20840712 processed confs
[info] 2425566 non-local processed
[info] INDEXING TIME
[info] params      11.248 sec
[info] results     10.383 sec
[info] false       1.274 sec
[info] true        1.305 sec
[info] null        9.351 sec
[info] !null       13.863 sec
[info] cfg         6.806 sec
[info] origins     13.082 sec
[info] dfs         5.151 sec
[info] reducible   3.373 sec
preparations for local driving

`MakeResult` action now makes results for all states. Sharing is exploited now in concrete analysis (not in "top-level cycle").
Next step: concrete analysis drives locally as possible without push/pop.
BTW: moving usage of sharing into concrete analyses improved performance (JIT?)
semi-local driving - ProceedState is not pushed
local driving in contracts
local driving everywhere
remove debug information
delta in IDEA annotations
tuning environment