(bug 46383) correct constructor fields for prototypes not using wb.utilities.inherit

Since the object literal was used for those constructors prototypes, the original prototype's
"constructor" field has not been there. Now we extend the original prototype (which is also
just a plain object with the "constructor" field set) instead of overwriting it.
Also did some renaming and general cleanup around the constructors.

Change-Id: Ied01e553d16dd0b161fa97ea25d33d9f4efd0447
Merge "(bug 46383) correct constructor fields for prototypes not using wb.utilities.inherit"