Extract synchronisation data into SyncFile and SyncData classes

- These value objects allow us to read synchronisation data from yaml files that have both strings and symbols as keys.

- Sync files now use strings as keys when serialising to yaml.

If you find that you have a `log/localeapp.yml` file that contains the string `!ruby`, run `localeapp pull` to update to "regular" yaml syntax.

Fixes #149