Within code often it is required to temporarly override value of some
object properties. To properly restore old values they must be stored
somewhere and the developer must remember to manualy restore them.
This commit introduces utilities that can be used to make it easier
using RAII idiom to guard the overrides.