Explicitly set root key of the serializer so the projects graph produces the correct JSON

ActiveModel::Serializer (AMS) accepts an option for the `root` key of
the JSON. If not directly passed it will generate the root key from the
controller where the serializer is called. When using the
`ProjectsGraph` inside the `ProjectsController` everything is working
fine. The `CachedArraySerializer` will generate `projecsts` as the root
key. But when the graph is used within a different controller, let’s
say `TimeEntriesController`, the root key for the serializer will turn
into `time_entries`. This is not good. Now the JSON for the `projects`
key is actually stored in the `time_entries` key overwriting the
correct time entry objects.
Move projects JSON before the time entries JSON output

When Ember Data gets an JSON payload it will start to parse it from top
to bottom. When it encounters ids of an association it will make extra
requests to fetch them (`?ids%5B%5D=1`) although the JSON of the
association is side loaded later. By generating the JSON in the correct
order we can prevent this.
Log cache messages to logfile