Protect against internal instance variables without accessors

Had an object that had an instance variable that came in at runtime via another gem. No getters / setters as it was not one of the values I cared about preserving. However the system would explode trying to fetch and restore the state of this variable. 

Changes will ensure the getter / setter methods exist before we try to call them. It does let variable state drop away though so have made a slight change to the readme to express this. I feel it's valid that you ensure there are accessors for the variable states you want to preserve. 

Longer term maybe look at instance variable get / set directly if it's worth pursuing full variable state preservation.