(#2853) - parse uri for user/password

Yeah, the parseUri function just wasn't decoding the username/password like it should. I also went ahead and put it in its own function.

Incidentally, there was a `jshint: maxlen:false` what was allowing us to become sloppy in `http.js`. Fixed that too.