Pick the first test fingerprint for a given suite/class name.  Fixes #827.

This drops older code that picked a single fingerprint within a framework.
This commit ensures only one name is executed across all frameworks.
The precedence is the order that frameworks are declared in Defaults.scala.
JUnit should be last because it is common for specs tests to be annotated
  with @RunWith for Eclipse support.  If a distinct fingerprint is not
  picked, the test will be run by both specs and JUnit.
In addition to this main reason, result processing code assumes one result
  per test class name and would have to be fixed if multiple fingerprints
  were allowed.
Use actual release version in the site search base.  Fixes #829.
Docs: deterministic ordering of howto index
Docs: custom role 'codeliteral' to allow substitutions in inline code

The built-in 'literal' role implements ``.  It tokenizes the
literal string to attempt some particular wrapping behavior.
This puts parts of the string in different spans, each with
class='pre' and the previous docs.css had a padding for that
class.  This led to excessive space within the literal string.

The custom role does no do this tokenization, but nested
inline parsing can result in multiple nodes, repeating the
problem.  So, the padding for class='pre' is dropped.  Ideally,
the sequence of nodes would simply be wrapped in an inline element
with class='pre' or some other proper solution that avoids having
multiple nodes.

To avoid wrapping in the middle of a literal, the 'pre' class
now has the style `white-space: pre;`.

The default role is now 'codeliteral' and the previous
uses of the built-in `` are converted to `.  Some incorrectly
converted code blocks were fixed in the process.

Finally, the Global-Settings page is updated with the new location
for the global sbt directory.  Due to the above changes, this could
be done without hardcoding the version.
remove deprecated top-level aliases
remove Process from base imports in .sbt files and eval

The implicits are already in the sbt package object.
refix #795

`math.min` should have been `math.max` here.
It's currently chopping off the output of inspect tree.
fix actions/aggregate, which used deprecated ScopedSetting alias
Added shutdown hook for restoring the terminal
Docs: expand new issue section of CONTRIBUTING
prevent another StringIndexOutOfBoundsException in Graph.toAscii
Update CONTRIBUTING.md
Fix unstable existential type names bug.

Fix the problem with unstable names synthesized for existential
types (declared with underscore syntax) by renaming type variables
to a scheme that is guaranteed to be stable no matter where given
the existential type appears.

We can do that because type variables declared in existential types
are scoped to those types so the renaming operation is rather local.

There's a specs2 unit test covering instability of existential types.
The test is included in compiler-interface project and the build
definition has been modified to enable building and executing tests
in compiler-interface project. Some dependencies has been modified:

  * compiler-interface project depends on api project for testing
    (test makes us of SameAPI)
  * dependency on junit has been introduced because it's needed
    for `@RunWith` annotation which declares that specs2 unit
    test should be ran with JUnitRunner

SameAPI has been modified to expose a method that allows us to
compare two definitions.

Also, a integration test has been added which tests scenario
mentioned in #823.

This commit fixes #823.