Draft: Support loading and filtering user units
Don't do a code review yet, as I'm not happy with it.
The current method of passing individual metadata about between components isn't very extensible. We need to pass a blob around (or have a C++ managed singleton).
NOTE: I've broken:
```
it is encouraged to use a separate journal object to request unique value
```
I'll either:
- pivot to a version like this, but pass a shared factory around, then each component will instantiate a journal from there.
- pivot to an API where we have a singleton and components pull the flags/paths out to build an sd_journal
- keep the current design and pass around an "is user" everywhere alongside the path. (though I don't like this)
Allow filtering by _SYSTEMD_USER_UNIT
User units have a different entry in the log. This patch
tries to abstract the filtering so that the UI doesn't change,
and choosing how the unit filtering works internally happens at a
component level.