Instead I think we would generate a master key and encrypt it with the user's password. That would allow them to change the password without having to re-encrypt all the data.
Most likely not. Reviewing a huge pull request like this is a lot of work and I'm not interested in doing it. At this point, if encryption at rest is ever accepted it would first have to be done in a fork and, once it's proven that it really works, that the backend and front end are solid, and all that with test units, then we can look at merging it back into the main app. The bar is high to integrate this because I'm most likely the one who will have to maintain it, and I can't be bothered if it's not very well implemented from the start.
So all that work of implementing and testing encryption would have to be done independently (at least without me reviewing - but perhaps someone else can). Although of course you're free to use the forum to discuss the fork, find beta testers, etc.