Refactor out AsyncResponse and add StubbedResponse. Responses now lazy-evaluate, and may be stubbed for testing