Util: add comment to Plane::distance
Boundable: combine accessors

Diaginal corners and face normals were separate, but really shouldn't be

THey were going to be used to generate face normals, so there is no point
in doing that every time instead of just caching them up front.
Replace local variables with const references

We can't rely on RVO anymore because these values are being cached
as members, not allocated on the stack.
Invalidatable: use a vector instead of a set

There is no reason to use a set and strings when all accessors are
predefined. A vector of type bool works better.
Make a macro for auto& and const auto&