Name created constructors

Previously all constructors were called either `Constructor` or `Create`, which makes it hard to read heap snapshots or logged object instances.

Aside from some minor whitespace/linting/logging changes, the last commit implements the new feature. It's all a bit magical but appears to work internally.