Fix contexts for user aspects to avoid duplicates. (#153)
Prevously we had a `{ OS, HM, host, user}` context applied to both, the
host aspect and the user aspect, that was causing duplicate definitions
since the context was the same and both host and user aspects include
den.default.
To fix this properly we now have separate aspects.
The host aspect is applied to `{ OS, host, user }` for each home-managed
user.
The user aspect is applied to `{ HM, host, user }` for each home-managed
user.
> ![NOTICE] Update your context-aware aspects if they use `{ OS, HM,
host, user}`
> As mentioned above this context is now split in two according if it
applies to a host or to a user aspect.
Also refactored the code to make it more idiomatic and easy to read.
Added tests based on the bogus repos from
https://github.com/vic/den/discussions/147#discussioncomment-15741563
and #150.
Closes #150
authored by