context: Add accessor in -private for HifState

Continuing my thread of not using HifContext other than as a
convenient property bag, add an accessor for HifState so that I can
drive things directly with it.
source: Only set librepo option if value is set

librepo right now has some magical (and deprecated) handling of the
LRO_MIRRORLIST option; for one thing, it calls strstr() on the url and
if it contains "metalink", it also sets it as a LRO_METALINKURL.

(Note the default Fedora repo files have mirrorlist=.../metalink/...)

But libhif circumvents this by explicitly setting NULL on the handle
even if the yum repository file didn't have it.  Change the setters to
skip setting the options to NULL, leaving them as default.

This fixes rpm-ostree composes.
context: Create an initial sack

I'm not using the high level context APIs, for one thing because they
want to load the repository state directly, whereas I want more
control over the enabled repositories, for example.

So this patch just sets up a default sack that I can use when running
hif_sack_add_source() directly.
call rpmtsSetRootDir