SI-7020 Determinism for pattern matcher warnings

Use LinkedHashSet for the DPLL algorithm for determistic
counter example generation.

Before, the test compiled with:

    [info] v2.10.2 => /Users/jason/usr/scala-v2.10.2-0-g60d462e
    test/files/neg/t7020.scala:3: warning: match may not be exhaustive.
    It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List(_, _)
      List(5) match {
          ^
    test/files/neg/t7020.scala:10: warning: match may not be exhaustive.
    It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 5, 6, 7))), List(_, _)
      List(5) match {
          ^
    test/files/neg/t7020.scala:17: warning: match may not be exhaustive.
    It would fail on the following inputs: List((x: Int forSome x not in (1, 2, 4, 6, 7)), _), List(1, _), List(2, _), List(4, _), List(5, _), List(6, _), List(7, _), List(??, _)
      List(5) match {
          ^
    test/files/neg/t7020.scala:24: warning: match may not be exhaustive.
    It would fail on the following input: List(_, _)
      List(5) match {
          ^
Merge pull request #2826 from retronym/ticket/7020-2.10.x

SI-7020 Determinism for pattern matcher warnings
Merge pull request #2828 from adriaanm/rebase-2771

[Rebase #2771] SI-7694 @uncheckedBounds, an opt-out from type bounds checking
Debug printing for Any, not AnyRef, to include primitives
Add sequence method via reflect.internal.Sequenceable implicit
And, Or take sets of Props

Remove redundant UniqueSym class.
SI-6582 Use Tseitin's algorithm for CNF.

This resolves the `AnalysisBudgetException` problem for big pattern matches.

Initial experiments indicate that the problem is even simpler than initially
thought: all formulae I got from the exhaustiveness check could be transformed
directly into CNF. Thus the framework introduced here might be overkill
and a much simpler implementation could work as well.

For Scala 2.11 I'd suggest to replace the DPLL procedure with Sat4j.