1.3.0 release

Cherry-picks stable commits from master onto a `v1.3.0-rc` branch.
This will be tagged `v1.3.0` and merged into `master` to preserve history.
This is a less convoluted solution than https://github.com/lox/pheasant/pull/112.