Currently the func copyInto(_ copy: RSDUIStepObject, userInfo: [String : Any]?) throws method on RSDUIStepObject requires duplicating similar code to that used to instantiate the object using the Decodable protocol. Refactor this method to allow overrides that implement customization beyond the basic replacement of strings and numbers.