less fluent conventions

less fluenty API for conventions
better use of ConcurrentDictionary in ConventionCache
remove redundant methods from Conventions
Dont expose lambdas from Conventions, only expose methods that call the
conventions
remove need to huge conventions constructor
Merge remote-tracking branch 'origin/LessFluentConventions' into release-5.0.0