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

Supersedes https://github.com/scala/scala/pull/2857 by incorporating feedback, in the form of more descriptive commit messages and code style changes (see diff below)

review by @gkossakowski