don't break the logs [not ready to merge]

I'm starting to take some of the things done in `v3`, and apply them to `master`. This is because breaking the commit logs (like 1295958ee52e57811bb80da11879ad24a1ecfe53 does) screws up the history - even if it _does_ feel nice for prototyping a new design.

Thus, this will let us make smaller releases, rather than breaking off and working on v3 till it's ready, and hopefully clean up the commit log a little.