Fix hash new retain cycle

Currently, any object that you call #trigger on will be retained indefinitely due to a bug with Hash.new:
http://hipbyte.myjetbrains.com/youtrack/issue/RM-203

This fixes it, and adds specs so when we can eventually revert back to Hash.new syntax, we can be sure there isnt a regression.