python bindings rework, part I

- split module file into smaller chunks. on-going, here the enums
- cleanup distutil
- update .gitignore

Note the enums name are now taken literally from C++ and might "break" existing clients.
As we spoke, we can make the case format consistent, possibly updating the C++ side of thing.
Here's how it looks for now, we can iterate one way or another.