Applies all the app-related checks for server side rendering.

Note: This is designed to include only the global/app checks. Section specific criteria must be handled by
section-specific middlewares, which have the responsibility to write a boolean value to context.serverSideRender
(@see setShouldServerSideRender and @see setShouldServerSideRenderLogin).

Warning: If this returns true, it is not sufficient for the page to be SSRed. Returning true from here is a
pre-condition for SSR and the result needs to be corroborated with context.serverSideRender
(context.serverSideRender is set to boolean by the middlewares, depending, in general, on the query params).

Warning: if you think about calling this method or adding these conditions to the middlewares themselves (the ones
that set context.serverSideRender), think twice: the context may not be populated with all the necessary values
when the sections-specific middlewares are run (examples: context.layout, context.user).

@param {object}   context The currently built context

@return {boolean} True if all the app-level criteria are fulfilled.
function isServerSideRenderCompatible( context ) {
	return Boolean(
		isSectionIsomorphic( context.store.getState() ) &&
		! context.user && // logged out only
			isDefaultLocale( context.lang ) &&
			context.layout
	);
}