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

DO NOT MERGE, THIS PR IS PART OF PROJECT MERCURY! 
Type hinting for `$article``.

You can skip the references here (``&``) as objects are always passed by reference in PHP.