This adds an "enum map" type that allows safe usage of an enum to index an array. (That is, it enforces that the index is of the enum type.)