Suggested fix for double-calling callbacks

I'm not 100% sure this is the right solution, but it works for me. I think the original would double-call "wrapped" if the first Then call failed. According to the q api doc: https://github.com/kriskowal/q/wiki/API-Reference#core-promise-methods the form I use will call wrapped regardless of whether the previous promise is fulfilled or rejected.

Also did:
Removed unused methods on Session
Require a specific version of q