Data file management

I implement a separate management for data files which are associated to
domain model instances such as purchase invoices and, in future, ticket
messages.

All documents are stored in DataFile instances.  I also implement a
DataFileService which handles storing, retrieving, and removing data
files.  Furthermore, I implement a DataFileController which handles
loading data files by ID.

I rework all classes related to purchase invoices and use the data file
system.

At last, I write a migration function in InstallService to migrate all
documents in purchase invoices to data files.