Clean-up: use pip provisioner, virtual resources, run stages, etc.

* Remove shell provisioner. My original idea was that the shell provisioner
  could be used somehow to fix the "stdin: not a tty" error before it is
  displayed, but this did not work out. I migrated the fix to the Puppet code.
* Added a Puppet templatedir for templates that aren't a part of any module.
  Empty for now, but I want it there because I expect potential contributors
  will appreciate having it set up.
* Added stages: 'first' runs before main (which exists by default), 'last' runs
  after. I only needed 'first', but once again I thought that it's better to
  have explicit scaffolding in place for other developers.
* Default ensure for Package resource type => present, rather than latest.
  'latest' causes a lot of unnecessary apt-get updates.
* Use pip provisioner to install Python packages. I forked phpsh and uploaded a
  maintenance release to PyPI so that it is trivially installable via 'pip
  install phpsh'.
* Added the Wikimedia apt public key to the repository.
* Added an apt class, with a resource type for adding PPAs.
* Moved Wikimedia apt repo setup to apt class (was in misc).
* Simplified a bunch of the onlyif / unless checks for Exec resources.
* Move Apache-related configurations from ::mediawiki to ::mediawiki::apache.
* Make Git clones and Apache modules & sites virtual.

Change-Id: Ia0518b6a18eda5946cbfea1d68acdb18f05f1e3f