To address some of the questions raised about how the Profile will be
used, the use case here is quite simple. The profile is read-only,
there will never be a reason for the application to modify its own
configuration. The application opens the profile once at
initialization, reads its config parameters, which may be a small subset
of the total depending on how many applications it contains, and
discards the profile. The queries themselves are quite simple, just
"gimme the value that matches this application/section/item ID".