Simplify some roboHydraHeadType code

* Simplify how the properties for the parent class constructor call
  are calculated.
* Instead of copying the properties that are mandatory or optional
  in the parent class, consider "name" and "detached" special,
  omnipresent optional properties.
* The previous code was written precisely for "name" and "detached",
  and it makes sense that these two properties are considered special
  and are always copied (they are independent of the functionality of
  the heads and thus universally useful, they're easy to forget when
  making new classes of heads, and they're annoying to explicitly
  mention in the class definitions).
* This commit also simplifies the code a bit and makes
  roboHydraHeadType easier to understand.
Give RoboHydraHeadMounted a type name
Small refactoring for the plugin require/registration
Admin plugin template refactoring

* Create a simple layout system so templates are more maintainable
* Create an extendObject utility
* Create a simple "partial template" system
* Make a couple of convenience functions to clean-up the code
* Create a footer with misc. information
Use extendObject to simplify some code a little bit
Make extendObject accept variable parameters

* Now extendObject can be called with two, three, or more
  arguments
* Add a comment explaining how to use extendObject
Make extraVars be applied when registering a plugin
Fix/add tests for plugin configuration loading
Add a TODO comment
Add an example plugin demonstrating custom heads
Add external scenario (+ fixture loading) example plugin