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

After the discussion in https://github.com/scala/scala/pull/2802 about breaking up that PR into two parts, here's the first part, comprising the first four commits (for which no pending issues were identified during review).

As to the 2nd part, I'll submit a new PR incorporating review feedback, that will build upon the commits in this PR.

review by @gkossakowski