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 ?