Clean up old way of passing data to external service

http://pm.tablexi.com/issues/80421
refactor to use #define_singleton_method

http://pm.tablexi.com/issues/80421
autoload model subdirs

http://pm.tablexi.com/issues/80421
move external service classes to their own dir

http://pm.tablexi.com/issues/80421
convert existing external_service_receivers response_data to JSON

http://pm.tablexi.com/issues/80421
Surveys now powered by generic UrlService

http://pm.tablexi.com/issues/80421
use let(:authable) instead of @authable if present

http://pm.tablexi.com/issues/80421
update query syntax

http://pm.tablexi.com/issues/80421
Make general SurveysController. Most work in this controller is done by new Survey class.

http://pm.tablexi.com/issues/80421
ExternalServiceReceiver#response_data is now JSON

http://pm.tablexi.com/issues/80421
factories for testing external services

http://pm.tablexi.com/issues/80421
change authable check precedence

http://pm.tablexi.com/issues/80421
create dynamic accessors for the response data

http://pm.tablexi.com/issues/80421
migrate existing Surveyor service types

http://pm.tablexi.com/issues/80421
revise query

http://pm.tablexi.com/issues/80421
once again, revise let(:authable) handling

http://pm.tablexi.com/issues/80421
revise templates to use dynamic response data accessors

http://pm.tablexi.com/issues/80421
fix spec to properly treat new service class name

http://pm.tablexi.com/issues/80421
remove request accessor; pass request in as parameter

http://pm.tablexi.com/issues/80421
survey is not a UrlService

http://pm.tablexi.com/issues/80421