Support/use self everywhere

This came out from a comment in #1094 
This PR makes all the code use `self` as a keyword for the properly scoped `this`
review: @mikeal @nylen @FredKSchott ?
This is another place where self isn't an instance of request, maybe we should use a variable name that is more descriptive just to avoid confusion, like `var _client = this`