Make it possible to provide custom camelize/dasherize method
Make it possible to provide custom camelize/dasherize method

Some simple optimizations can result is massive perf improvements, but
there's a risk of memory bloat if an app uses dynamic fields as keys, so
it's better to make it possible to swap out the camelize implementation
than to force any particular optimizations on everyone.

example usage:
```
class FastCamel
  def self.camel_cache
    @camel_cache ||= {}
  end

  def self.camelize(string)
    camel_cache[string] ||= string.underscore.camelize(:lower)
  end
end
```

in `config/application.rb`
```
    config.middleware.use OliveBranch::Middleware, camelize_method: FastCamel.method(:camelize)
```

normal implementation results:
```
BENCHMARK_REPETITIONS=1000 rspec spec/benchmark_spec.rb
                 user     system      total        real
time taken  97.440000   1.110000  98.550000 ( 98.724968)
```

optimized implementation results:
```
BENCHMARK_REPETITIONS=1000 rspec spec/benchmark_spec.rb
                 user     system      total        real
time taken  34.800000   0.170000  34.970000 ( 34.981416)
```

additionally this could be used for guarding against camelizing strings
that shouldn't be camelized (for instance a uuid)

vigetlabs/olive_branch,vigetlabs/olive_branch