LPS-45853 Add liferay portlet app single-page-application option
LPS-45853 Add liferay portlet app single-page-application option (generated)
LPS-45853 Add portal.properties javascript.single.page.application.enabled property
LPS-45853 Single page application utility
LPS-45853 Disable single page application for ajaxy portlets to avoid navigation conflicts

- Asset Category Admin
- Asset Tag Admin
- Nested Portlet
LPS-45853 Standardize portlets markup incosistencies to fit surfaces contract
LPS-45853 Do not force post action urls when single page application is enabled
LPS-45853 Liferay.History should not fire change for foreign states
LPS-45853 Fix and simplify logic for portlet events to handle dynamic portlet addition and removals
LPS-45853 Include system portlets to Liferay.Portlet.list
LPS-45853 Add themeDisplay.getLayoutRelativeURL method
LPS-45853 Do some clean up on single page application navigation
LPS-45853 Move surface browser specific CSS to extras.css
LPS-45853 Update CKEditor to work with single page applications

Some changes were made to CKEditor, those are:
- Destroy CKEditor instance on Portlet destroy lifecycle
- Init BBCode and Creole data processors when they are already loaded on the page.
- Reconfigure CKEditor for BBCode and Creole on surface update.
LPS-45853 Reset session timeout after Ajax request completion
LPS-45853 Add bottomJs surface to evaluate dynamic JavaScript
LPS-45853 Implement destroy method in Portlet
LPS-45853 Detach the subscription for showTab in DDM FormBuilder on portlet destroy event
LPS-45853 Prevent hubcrumb flashing
LPS-45853 Move page custom JavaScript to outside single page application condition