Restructuring scala.js based around @isagalaev's comments.

This commit removes a lot of the complex structure, specifically around
parameter lists and class definitions -- which were not totally correct
and introcued other problems.

It also adds support for unicode method/type names when necessary, and
correctly tags type names and type arguments with the 'type' className.
Generlize style support for .hljs-type and .hljs-typename.

Previously most type and typename styles were language-specific.
Under isagalaev's direction I have generalized these, and done
some work to unify type and typename.