Fix #270 - Allow changing naming strategy and disabling annotation

I implement the config as commended by @schmittjoh in #270

This PR should is targeted to be completely backward compatible, so the old configuration will still work and  the defaults are still the same for annotation,cache and camel_case.

Also added some tests for the configuration. (one copied from #270)

What do you think about that?

I will also update the documentation if we agree on this configuration.