if a class has no attributes, don't store anything passed to new

The constructor generator was relying on the previous behavior, so it
gets its own new sub so it can be bootstrapped.