use class Webserver to implement recursor http server
Rename (json_)ws.(cc|hh) to ws-(auth|recursor).(cc|hh)

Because that's really what those files are: the implementation of
the webserver in the Auth or Recursor server, respectively.
rename StatWebServer -> AuthWebServer
rename JWebserver -> RecursorWebServer
webserver: determine daemon_type by product type
api: share apiServer* code across auth, recursor

Gives us "free" implementations of /servers, /servers/localhost,
/servers/localhost/{config, search-log, statistics} for the recursor.

Move JSON helper functions from ws-auth.cc to json.cc; turn
parseJsonBody into HttpRequest::json().
webserver: add HttpResponse.setBody(json document)

Convenience method.
Add API test suite for recursor
Keep Recursor webserver as experimental
Merge pull request #1249 from zeha/f/rec-ws

Refactor Recursor webserver