preserve mutations to inherited let_once's through :once->example

also refactor inheritance logic a bit while recording

this allows you to inherit a let_once(:foo) (subject_once) and modify it
within a :once block that is not an explicit override, e.g.

    subject_once { [1] }
    it { should eql [1] }
    context "nested"
      before(:once) { subject << 2 }
      it { should eql [1, 2] }
v0.0.10