Support for naming strategies (snake_case)

Implementation for #393
I think we'll need a dual for this naming strategy... one for serialization and one for deserialization. IOW, ```ObjectMapperSerializerNamingStrategy``` and ```ObjectMapperDeserializerNamingStrategy```. The naming strategies for each of those could be different theoretically.