This PR consists of three commits.
The first fixes a bug where the size of a limited map was actually one less than the maximum size set. This shouldn't matter at all for the existing code, since there is only one limitedmap, and its size is very large.
The second disallows unlimited limited maps, since that doesn't make very much sense, and simplifies the code a little bit. (I'm not too attached to this, in case anyone doesn't like this change I can just remove it.)
The third adds unit tests for limitedmap, which were previously absent.
I elected to leave the commits unsquashed for review, since they're logically separate, but I can squash if desired.