SI-6215 Fix compiler crash on private method in value class

Fixes the problem with private defs in value classes by moving the $extension after the name proper rather than before. The previous scheme did not commute with makeNonPrivate:

I.e. if -ext-> is "generate extension name" and -mnp-> is "make not private" we did get for
method foo in value class Foo:

  foo -ext-> extension$foo -mnp-> Foo$$extension$foo

but

  foo -mnp-> Foo$$foo -ext-> extension$Foo$$foo

With the change both variations give the same name:

  foo -ext-> foo$extension -mnp-> Foo$$foo$extension

but

  foo -mnp-> Foo$$foo -ext-> Foo$$foo$extension
turns on documentation of scala.reflect.runtime

We definitely need to document scala.reflect.runtime.universe,
therefore adding scala.reflect.runtime to skipPackages was a mistake.

But then we need to make a bunch of internal classes private to reflect
or to scala. Not very pretty, but it works.
renames macros.ParseError to ParseException

Because it's not a fatal error. Neither it should subclass Throwable.
renames macros.TypeError to TypecheckException

Again, this is not a fatal error, so it should end with an Error,
and it should subclass not Throwable, but Exception.

Also moved the exception outside the cake to simplify error handling,
along the same lines of what've been done for parsing and reification
exceptions.
renames macros.ReificationError to ReificationException

And again, this is not a fatal error, so it should end with an Error,
and it should subclass not Throwable, but Exception.
removes EmptyTermName and EmptyTypeName

We have nme.EMPTY and tpnme.EMPTY for that.
removes extraneous methods from api.Constants

The next round of scaladoc-driven cleanup kicks in.
removes extraneous indirection from FlagValues

We don't really need that abstract type.
removes extraneous methods from api.Scopes

It's been more than a year, and I never used these methods.
removes extraneous methods from api.Mirrors

We decided to give up on providing symbol table traversal facilities
in the current incarnation of mirrors. Let's be consistent with ourselves.
hides internal methods of api.Printers
removes extraneous methods from api.Trees

Tree.hasSymbol is really too much to document for its merit.
removes extraneous methods from api.StandardDefinitions

Never got to use these guys, so let's better remove them.
removes extraneous methods from api.StandardNames

nme.ROOT doesn't have much use in the public API (unlike nme.ROOTPKG).
tpnme.EMPTY duplicates a method inherited from the base class.
introduces macros.package.scala

For the sole reason of putting docs on it in a separate pull request,
which is being prepared elsewhere
moves Attachments from api to macros

Because they are only available in macros.Universe, not in api.Universe,
therefore I'd argue that the confusion factor is stronger than the weirdness
of scala.reflect.api.Position extending scala.reflect.macros.Attachments.
introduces api.JavaMirrors

This trait carries mirror-related changes of the API that happen
when api.Universe transforms into api.JavaUniverse.

From a coding standpoint this is a mere rehashing of the code, but
from a documentation standpoint this provides additional insights
into what's going on in reflection.
upgrades showRaw

Fixes the stuff that was irritating, when I was preparing examples
for reflection documentation.

Has zero impact at stability of scalac, because showRaw isn't used anywhere
in the compiler unless invoked explicitly.
SI-6483 Prohibit super[T] references in value classes.

This seems the safest course of action for 2.10.0.
SI-6485 stops creating extmethods for macros

Macros don't correspond to bytecode-level methods, therefore
there's no need to undergo any transformations past typer.