Extract RESTHandler and allow API groupings

Prepare for running multiple API versions on the same HTTP server
by decoupling some of the mechanics of apiserver.  Define a new
APIGroup object which represents a version of the API.
Merge pull request #842 from smarterclayton/add_api_groups

Extract RESTHandler and allow API groupings