Got enums mapping automagically

And also implemented convention options. Fixed some potential bugs by
clarifying the logic for automatic maps. Only integral types can be keys
now. collections cannot be.