SI-7407 fixed in GenBCode but beware, it remains a bug in GenASM

GenBCode runs only under a flag, and moreover only if -optimise
is not present (see ScalaSettings for details).

Therefore during a nightly, when tests are run under -optimise,
we need -Ynooptimise to deactivate the optimizer.
With that, GenBCode can run and tackle the test case successfuly.
GenBCode: decouple ClassNode building from classfile writing

This commit and two follow-up commits (recognizable because
of the starting words "decouple this from that" in the commit message)
are baby steps towards pipelining of class building and class writing,
ie allowing class building (which requires typer) and "the rest"
which doesn't) to run in parallel.

The commits have been broken up following a previous review comment.
GenBCode: decouple ClassNode building from encoding as byte array

To recap from the previous commit, another baby step towards
pipelining of class building and class writing.

Implementing similar functionality in GenASM is up for grabs,
see https://issues.scala-lang.org/browse/SI-6164
GenBCode: decouple ClassDef traversing from ClassNode building

In keeping with the baby steps towards pipelining of
class building and class writing, this commit gets one step closer
to that. Only thing missing: the actual thread-pool.
That will be the focus of an upcoming commit.
Merge pull request #2863 from magarciaEPFL/backendish40

(1 of 2) of the rest of the new bytecode emitter + feedback