Coerce strings when reading attributes.
Extract local cache middleware

Extract LocalCache Middleware, so it can requires rack dependencies,
without adding rack dependencies to `AS::Cache::Strategy::LocalCache`.
Group assets options in production env template
Merge pull request #14171 from arthurnn/extract_middleware_cache

Extract local cache middleware
Merge pull request #10497 from senny/10485_does_not_coerce_strings

coerce strings when reading attributes
include names in model generator warning message. refs #13515.

This is a follow up to #13515. It includes the name given and
the singularized version in the warning message. This will aide the user
to see wether the detected singular was right or not.
build fix. follow up to 174c9f0df39cd338a4871f82794256cc64f68a81
refactor, extract `with_locale` helper.
Go with #presence_in instead of #present_in -- it doesnt sound quite as good, but the closer relationship to #presence over #present is ultimately worth it