moved prereq analysis back from ::SiteKwalitee and totally refactored