Use PEP435 Enums

This is the work I've done to implement #5. Like I said in that issue, I'm not sure this is the best thing to do. However, it does bring some cool stuff (like using real Python enums and being able to access the label from the enum member).