V4

Here you go - I did all of the merging first, so this should go much more smoothly. You might want to create a branch of v4 (if you haven't already) before pulling this in so it is easier to refer to the original v4 changes you made.

Note: In my fork, master now refers to v3, v4 is the new branch that has been merged with v3 already, and v4-unmerged is my working branch that is now superseded by v4.