Don't share emptyUpdatedValueTable across multiple ScriptableDocument.

Currently, ScriptableDocument's updateValues field accidentially shares a
single UpdatedValueTable because emptyUpdatedValueTable is a singleton defined
in ScriptableDocument's companion object. Move it to ScriptableDocument class
so that each ScriptableDocument instance has its own UpdatedValueTable.

Also move UpdatedValueTable type to ScriptableDocument class because it is used
only within ScriptableDocument class.