And, Or take sets of Props
Remove redundant UniqueSym class.
Debug printing for Any, not AnyRef, to include primitives

Signed-off-by: Gerard Basler <gerard.basler@gmail.com>
Avoid the `CNF budget exceeded` exception via smarter translation into CNF.

The exhaustivity checks in the pattern matcher build a propositional
formula that must be converted into conjunctive normal form (CNF) in
order to be amenable to the following DPLL decision procedure.
However, the simple conversion into CNF via negation normal form and
Shannon expansion that was used has exponential worst-case complexity
and thus even simple problems could become untractable.

A better approach is to use a transformation into an _equisatisfiable_
CNF-formula (by generating auxiliary variables) that runs with linear
complexity. The commonly known Tseitin transformation uses bi-
implication. I have choosen for an enhancement: the Plaisted
transformation which uses implication only, thus the resulting CNF
formula has (on average) only half of the clauses of a Tseitin
transformation.

The Plaisted transformation uses the polarities of sub-expressions to
figure out which part of the bi-implication can be omitted. However,
if all sub-expressions have positive polarity (e.g., after
transformation into negation normal form) then the conversion is
rather simple and the pseudo-normalization via NNF increases chances
only one side of the bi-implication is needed.

I implemented only optimizations that had a substantial
effect on formula size:
- formula simplification, extraction of multi argument operands
- if a formula is already in CNF then the Tseitin/Plaisted
  transformation is omitted
- Plaisted via NNF
- omitted: (sharing of sub-formulas is also not implemented)
- omitted: (clause subsumption)
spec: Add a link to the sources from the main page
SI-9015 Reject 0x and minor parser cleanup

Only print error results.  Show deprecated forms.

Test for rejected literals and clean up parser

There was no negative test for what constitutes a legal literal.

The ultimate goal is for the test to report all errors in
one compilation.

This commit follows up the removal of "1." syntax to simplify
number parsing.  It removes previous paulp code to contain the
erstwhile complexity.

Leading zero is not immediately put to the buffer.  Instead,
the empty buffer is handled on evaluation.  In particular, an
empty buffer due to `0x` is a syntax error.

The message for obsolete octal syntax is nuanced and deferred
until evaluation by the parser, which is slightly simpler to
reason about.

Improve comment on usage of base

The slice-and-dicey usage of base deserves a better
comment. The difference is that `intVal` sees an empty
char buffer for input `"0"`.
SI-8950  SeqView and StreamView allow indexing out of a slice

Added `idx >= 0` tests for `SeqViewLike#Sliced` `apply` and `mutable.IndexedSeqViewLike#Sliced` `unapply`.  Now you get `IndexOutOfBoundsException`s as you should.

No tests; this was found by collections-laws and will be tested by them.  (Exact variants in bug report were tested in the REPL.)
intellij module repl depends on asm
Merge pull request #4182 from som-snytt/issue/multizero

SI-9015 Reject 0x and minor parser cleanup
Merge pull request #4194 from lrytz/intellij-repl

intellij module repl depends on asm
Merge pull request #4154 from smarter/patch-1

spec: Add a link to the sources from the main page
Merge pull request #4192 from Ichoran/issue/8950

SI-8950  SeqView and StreamView allow indexing out of a slice
Merge pull request #4078 from gbasler/topic/fix-analysis-budget

Avoid the `CNF budget exceeded` exception via smarter translation into CNF.
fix ByteCodecs scaladoc
SI-9043 ArrayBuffer.insert and insertAll are very slow

insert and insertAll were slower than their java equivalents by factors
of 5 and 10 respectively.

Benchmark code was provided here:
https://gist.github.com/rklaehn/3e9290118fcf63d1feae

We are using a toList to the source Traversable
Then doing a length and a copy on that collection.

By using an array, we can make use of faster methods.
Managed to get the ratios down to 1.5 and 1.5 respectively.

In addition to this, I think we should consider breaking insert into 2
separate methods, one for a single item and one for a collection.  The
varags version is very expensive when a single item is being inserted.

@phaller @axel22
Merge pull request #4203 from xuwei-k/ByteCodecs-scaladoc

fix ByteCodecs scaladoc
Merge pull request #4202 from kanielc/SI-9043

SI-9043 ArrayBuffer.insert and insertAll are very slow