refactor developer materials. Fixes DEVELOPER-989

Most of this is moving code around to their own functions, introduced the option to update the page hash or not. 
Rather than update the hash on everything but googlebot - we only update it when updateHash is set to true.