Support for naming strategies (snake_case)

Implementation for #393
+1 to 'name' instead of 'rename'
As i have 2 implementations (one naming as ObjectMapper would do and one doing anything) i didn't see the need of using an ```Optional<String>``` and let the caller to decide. We can play with Spring injection to decide what implementation clients want to use.