Don't hardcode existing relations in TextAnalysisFormat

This follows my work on making it easier to add new dependency kinds in sbt.

> The previous implementation of TextAnalysisFormat contained the list
of all the existing relations that sbt knew of, and used this
information to write to and read from the disk the persisted analyses.
>
> In this knew implementation, TextAnalysisFormat gets from the
Relations object what are the existing relations, and then persists
them to disk.
> 
> The previous situation was not optimal since it meant that, in order
to add a new dependency kind, one had to modify both the Relations
and TextAnalysisFormat.
> 
> Using this new implementation, no change to TextAnalysisFormat is
required whenever a new dependency kind is added.

Thanks @gkossakowski for the help !

/cc @xeno-by
This relies on matching the order defined in `existingRelations` so it's a bit fragile. I don't have any good idea how to address that, though. @Duhemm, if an improvement comes to your mind please submit a subsequent PR. We won't be blocking this one.