Fixed for enum namespacing

Also renames some of the variants to avoid duplicate words (eg: Key::KeyA -> Key::A).

Also happens to solve #146.