Refactoring, cleanup, minor feature updates

Primarily it contains
1. SsoAuthProviderWrapper as a hook to provide SSO style auth mechanism. Netflix uses an internal impl of this interface to provide sso auth for various internal tooling built using pytheas
2. Refactoring FreemarkerTemplateProvider to clean up unused code paths
3. Minor feature updates (cmc plugin, required field, helplink macro) to ftl macro library