Analyze constants to remove unnecessary branches

This commit adds analysis and optimization of constants to remove
unnecessary branches. It uses abstract interpretation to determine
what constant(s) a particular stack slot or variable might or might not
hold at a given spot and uses that knowledge to eliminate branches that
cannot be taken. Its primary goal is null check removal, but it also
works for other constants.

Several tests are modified to include the new optimization phase.

Two new tests are added. One verifies that branching still works as
expected. The other verifies that branches are removed.
SI-5513: add inplace set-theoretic operations for mutable bitsets.
Optimize rebalance method by using null optimized list implementation.

rebalance method relies heavily on s.c.i.List. By replacing List with null
optimized version, NList, rebalance operation is significantly more faster.
Test indicate +10 % performance improvement for tree sizes >= 100.

Existing tests verify red-black tree invariants, including operations
involving tree rebalance.
SI-7236 Deprecate ThreadPoolTaskSupport and friends
Removed -Ynotnull setting.

It never worked and it would periodically jump out and bite
someone. Slash and burn so new plants can take root. Eliminated
NotNullType and NotNullClass, internal elements. Removed notNull
method on Type, which no longer has a purpose. Retained 'def
isNotNull' because there are types which are known by construction
not to be null (ThisType, ConstantType as long as the constant
isn't null, etc.) and that's still useful to know.
Remove -Xcheck-null setting.

Maybe this was useful in some way; but no way I ever saw.
I have comments which tell me this is exposed in the IDE so
I left a stub.

I also removed mkCheckInit. That probably sounds like it's related
to -Xcheckinit. Guess again, guy-who-thinks-names-mean-things. It
was only used by -Xcheck-null.
SI-7247, deprecated NotNull.

Removed NotNull from tests and the parentage of AnyVal.

Removed the tests which were actually testing anything to
do with NotNull; massaged the others to forget NotNull and/or
not to name local things NotNull.
Completely remove isNotNull/notNull.

Restarted the Zamboni and collected these as well.
Author was convinced by reviewer that clinging to
isNotNull like Linus's security blanket will not
help us with landing a picture of the Great Pumpkin.
YAGNI, Charlie Brown.
Eliminated containsNull.

This was a little trickier than the previous. I introduced
a new method 'isBottomSubClass' which is the obvious complement
to the beloved 'isNonBottomSubClass'. In eliminating the two
call sites of containsNull I might have overshot the mark a
bit when I rewrote fourthTry and thirdTryRef, but who is going
to argue with such beauty as this.
Cleanup of constant optimization

This commit cleans up constant optimization from the review of
https://github.com/scala/scala/pull/2214 .

* drops are done using the instruction's consumed count rather than a
  numeric literal
* drops are moved into one common method in the main instruction
  interpreter
* One instance of x.length > y.length is replaced with
  x.lengthCompare(y.length) > 0
* NaN is dealt with by treating it as an UNKNOWN
* A test is added to make sure NaN semantics aren't broken.
* The constant-optmization test is improved with tests for switch
  statements
Merge pull request #2214 from JamesIry/master_constant_optimization

Analyze constants to remove unnecessary branches
removed a redundant var in JavaWriter.flagsToStr

the variable x was assigned to, but was never used.
Merge pull request #2244 from paulp/pr/notNull

SI-7247, deprecate NotNull.
Merge pull request #2219 from chuvoks/rbtRebalance

Optimize RedBlackTree rebalance method by using null optimized list implementation.
Merge pull request #2235 from vigdorchik/si_5513

SI-5513: add inplace set-theoretic operations for mutable bitsets.
Merge pull request #2251 from soc/SI-7236

SI-7236 Deprecate ThreadPoolTaskSupport and friends
Merge pull request #2262 from mesagie/patch-4

removed a redundant var in JavaWriter.flagsToStr