**API**: Split into modules for independence, scalability
This follows on from the previous commit by splitting the code
into several modules. The result classes are split across base,
prodmd and fedora, with Fedora-specific dependencies and code
only in the fedora module. A new helpers module contains the
UUID helper function. The tests are also split up. One other
change is smuggled in: when called for a namespace and group
name that already exist, `add_group` now updates that group
dict with the provided extraparams, rather than adding a new
group. In fact ResultsDB would wind up performing this sort of
de-duplication for us anyway, but doing it here makes testing
a bit easier...I might take this out again later, I suppose.
Signed-off-by: Adam Williamson <awilliam@redhat.com>