function handleMigrations(engine: any) {
  engine = migrate(engine, STATE_VERSION);

  engine.addMigration(1, migrateToReduxStorage);
  engine.addMigration(2, migrateToSupportProjectHomePath);

  return engine;
}
3. SUPPORT NESTED TASK REDUCER STRUCTURE

Before, the tasks reducer had a flat structure where each entity had a
unique ID:

 {
   'foo-start': {...},
   'foo-build': {...},
   'bar-start': {...}
 }

Now, the tasks reducer is nested, same as our dependencies reducer:

 {
   foo: {
     start: {...},
     build: {...}
   },
   bar: {
     start: {...}
   }
 }

As a result, there is no longer an `id` field on tasks; tasks are
referenced by a pair of fields now, instead of a single one.