Mercury branch - all the changes and functionality we need to have Mercury skin working

DO NOT MERGE, THIS PR IS PART OF PROJECT MERCURY! 
$parser->getRevisionUser() is assigned to a variable above but not used here. But because it's called at least twice no matter what, why not assign to a variable outside the conditional.