Cherry release

Merges various client changes that we've been accumulating on `release` into `master`.

I reverted the 'hacky' commits that Soumya added before.

@papajohn @Some3141 Please make sure that I've reverted all that I need to. Thanks!