Reduce visibility of more data type internals

Many of our data types -- particularly the ones in or.h -- have their internals visible across modules, in a way that harms modularity and leads to weird code couplings. We would do well to reduce this visibility and refactor as needed.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information