abstract admin and widget code into their own class

git-svn-id: https://plugins.svn.wordpress.org/akismet/trunk@873053 b8457f37-d9ea-0310-8a92-e5e31aec5664