Added a component com_cache to manage caching directives. On an upcoming core commit, Pines will have the option to cache certain sections of the site based on custom directives. This component allows for configuring and managing the cache directives from within the framework. Caching almost fully eliminates the init and kill processes of Pines, which can be CPU intensive and slow. 

On com_content, com_menueditor, and com-storefront i40 menu inits, a return was added if the request is an ajax call (will be defined in index.php in core in an upcoming commit). This avoids unnecessary work of loading the menus for calls that will never need them.

On com_user, added an array of abilities to the SESSION instead of just inherited abilities so that caching will be compatible.

On com_timeoutnotice, altered the check.php file and the loading of the timeout js so that the inits are skipped and the timeouts are done more efficiently and less often by mathematically calculating the checkback time only instead of using intervals.

On com_dash, altered the way widgets are called so that they can be cached with the new caching option.
Merge remote-tracking branch 'origin/master'