Returns a new state with the given attributes updated for the specified site.

@param {Object} state current state
@param {Number} siteId identifier of the site
@param {Object} attributes list of attributes and their values
@returns {Object} the new state
function updateSiteState( state, siteId, attributes ) {
	return Object.assign( {}, state, {
		[ siteId ]: Object.assign( {}, initialSiteState, state[ siteId ], attributes ),
	} );
}