Enforce consistency of pack, docs, osgi, maven tasks.

Instead of scattering properties all over invocations of
staged-docs, staged-pack, make-bundle, copy-bundle and mvn-package,
these are now all fully determined by the project they act on.

The varying arguments to these macros are all centralized.
They are named like `project.prop`, where `prop` is one of:
description, package, dir, name, namesuffix, version,
targetdir, targetjar, jar, docroot, skipPackage, srcdir, src, srcjar.

The defaults for these properties are computed using `init-project-prop`.
De-duplicate logic in maven deployment.
Render relevant properties to buildcharacter.properties
Extra repository hook via `extra.repo.url` var

Previously defaulted to 'https://oss.sonatype.org/content/repositories/releases',
now must be set manually. PR validation uses it to configure the repository
that has the artifacts published during validation.
More useful ant targets for faster pr validation
IDE needs actors/swing/continuations publish for validation.

As soon as they are also modularized, we can go back to
only building/publishing the core (lib/reflect/compiler).
A value class for Precedence.

One fewer Int to be whizzing around the parser hoping to
be confused with other Ints.
Rewrites the parser stack reduction logic.

Centralizes the scattered logic surrounding erroneous
pattern syntax. Consolidates the redundant lookahead
implementations. Eliminates var manipulation in favor
of recursion.
Parser stack reduction discussion

Check files
Parser stack reduction peekingAhead

Restores a form of the previous peekAhead bookkeeping.

Instead of tracking the current token and offset outside
of xxxAhead, peekingAhead uses `in.prev` and will push
back if the operation results in an empty tree.
Merge pull request #3108 from adriaanm/faster-build

Faster PR validation
Merge pull request #3100 from som-snytt/paulp/reduction

Paulper stack reduction
Add buildcharacter.properties to .gitignore.
Merge pull request #3115 from paulp/pr/ant

Add buildcharacter.properties to .gitignore.
SI-7568 Adding Serializable to ResizableArrayAccess inner class of PriorityQueue
SI-7568 Adding PriorityQueueTest
M6 modules, partest depends on scala as provided.

The new partest now marks its scala dependencies as provided.
This is much more robust than before, and it breaks ugly cycles.

Updated the build for partest-extras to provide the required
scala-compiler dependency.

Also, upgrade pax-url-aether to 1.6.0.

Since our jenkins uses mirrors with passwords,
we needed a fix for https://ops4j1.jira.com/browse/PAXURL-217
in order to run osgi.test on jenkins, now that we use maven more.
We didn't hit this bug before because we were using a standard
location for the maven local repository, but that causes problems
with concurrent jenkins jobs accessing it.

So, I added the following to `~/.m2/settings`,
and then ran into the issue described above.

Also removed some non-essential uses of the extra-repo (slows stuff down),
and added a comment of how to make the osgi tests look in a certain
local m2 repo (for /some/ operations...)

```
<!--
  Maven repos are not safe for concurrent access, thus give each job its own.
  The WORKSPACE env var is set by jenkins to the path of the current job's workspace.
  This settings file will cause ant/maven to break if WORKSPACE is not set (to a writeable directory).
  I don't know how to encode a fall back, but I assume it's not needed as this is ~jenkins/.m2/settings.xml
-->
<localRepository>${WORKSPACE}/m2repo</localRepository>
```
Merge pull request #3114 from adriaanm/to-m6

M6 modules, partest depends on scala as provided.
SI-7958 Deprecate methods `future` and `promise` in the `scala.concurrent` package object

- The corresponding `apply` methods in the `Future` and `Promise` objects
  should be used instead.

- Adjusted tests to use non-deprecated versions

- Fixed doc comments not to use deprecated methods

- Added comment about planned removal in 2.13.0
Merge pull request #3111 from phaller/issue/7958

SI-7958 Deprecate methods `future` and `promise` in the `scala.concurren...