StringMap is not StringToUniqueIntegerMap without syncing

Syncing is now done in a subclass, SyncedStringMap
AbstractData has been partially abstracted into DataRegistry to allow dynamic Data values
Subclasses of AbstractData have been updated to reflect this
Datatable syncing fix is next
Session doesn't get a datamap

DatatableComponent now gets an isDirtyMethod
Add getUserCommands() to PlayerInputState