Assorted features and fixes

This PR is a collection of seven small, unrelated features or fixes.

I was starting to move these commits into separate branches, but I believe all of the changes are generally useful, so I thought I'd start with the easier path of one combined pull request, instead.

If you'd like me to break any or all of these out into separate PR's, I'm happy to do so. And regardless, I'll try to be better about making feature branches in the future.