Adding query class

Added a promise wrapper for request.
New Querist class uses that

Due to the nature of module.exports = function we've had to do some interesting dependency injection using require-subvert.