Javascript Object Versioning and Evolution: A simple way of tracking Javascript object state history while applying transformations