CoreDataManager: introduce migrationOccurred: handler

- migrationOccurred: is called after a migration and the new migrated DB
  was opened successfully.
- Intended to be overridden by subclasses so they can do run custom DB
  tasks that need to be done after a migration