Optimize outdated package return values

When returning outdated packages, return a dict with upstream versions.
This holds all upstream versions as well as a key with the latest
version. Ensure that the search runs on as little values as possible
and properly returns an empty list or a list of packages.

Add a cache based on hashed node filter and repolist.

Add two more default repositories to make a default setup return
something meaningful.

Fixes #42

Signed-off-by: Christoph Kassen <c.kassen@telekom.de>