Call [super free] on error in init methods.

Reason is that - free might free stuff which is allocated during the
initialization, which might not be allocated when an error occurred.