Mode : enumerate modes as constants and add factory `Mode.named` and the `name` getter

symmetric to themes