[webui] work on the request list
[webui] time travel to make watchlist test reliable

the cache key is based on the timestamp of the user. If the user changes
his watchlist twice a second, his fault if the caching is busted - no
reason to cache on subseconds :)
[webui] move the query for requests into a function and cache it
[api] adapt unit tests
[webui] verify issue #379 is fixed
[webui] verify removing architectures works

fixes #402
[webui] remove directory model in favor of API's
[api] make repository_architecture have a primary key

it's easier to delete and update it then - which is important for
update_from_xml not to store twice
[webui] make sure to check if source access is allowed in #show