new WIP

@JorgeFerrer here's the latest that I'm sending to Kamesh to work from. Squished and fixed the Freemarker/include issues.
I think we should avoid passing the ThemeDisplay since it can be obtained from the portletRequest since it's also passed as a parameter.