Cleanup notification id fiddling

Final issue seems to be OpenStruct having an id method. We now create an internal subclass of OpenStruct and undef the id method before using it in the Notification class.