Properly change the designated initializer

Following established Cocoa conventions, our designated initializer
invokes super's designated initializer and we override super's
designated initializer to invoke our own.