Viewport tests

I'm at another good stopping point for these, so here's another pull request. I'm trying to not put them all in one enormous code review, just for sanity's sake.
I guess it's interesting... actually, kind of points out that maybe we should be giving errors when you try to zoom to those values, or at least pin them to some safe minimum.