Added YUI module: required only for the PureIO theme

This proposal will include three new themes to demonstrate
how output will look after the output work in 2.8

This change is required for the PureIO theme in order to
get the menu functioning.
YUI PureIO does not natively support dropdowns.
Required core changes other than to core_renderer

There is only one minor change required outside of the core_renderer
to achieve what we wish to achieve.
We need to add support for automatically calling a pre-render method.
This method allows the element to perform and internal processing
it requires before it is rendered.
Create basic local_output plugin

Adds a basic local/output plugin.
At present the plugin consists of the following:
* An index.php page that will be used to display three things a
  list of links, a menu, and a dropdown menu.
* A language file will essentials.
* A renderer skeleton, namespaced and located in classes/output
* A course_list helper for getting a list of courses.
Add an element class

The element class is the class ontop of which all atomic design
classes must be based.
It adds the following common functionality to all.
* Attributes that can be added on the fly.
* Properties that can be added on the fly.
* Three standard attributes applied to every element:
  * active
  * enabled
  * dimmed
Added atom, molecule, and organism abstract classes

This commit adds the three abstract classes that are required
to be extended for all atoms, molecules, and organsims.

These three classes add nothing to the element class they all
extend, but by having them as classes it should be easier in
the future to extend the API for a specific element type.
Added action, link, button and text atoms

This commit adds the action, link, button, and text atoms.
The text atom is a simple atom that has only content. The purpose
of having it as an atom is so that in instances where content
consists of more than one content (two bits or text, or text + icon)
we have a compartmentalised object for the text.
The action atom represents an action the user can take, it can be
represented by the theme as they choose, usually a link or a button.
The link and button atoms are simple extensions of the action element.
It will be recommended to use the action atom over the link or button
atoms so that the theme can choose how to render it.
However they are available for situations where you absolutely need
one or the other.

This change also include the required render methods for these atoms.
Added menu, and dropdown menu display

This commit adds the menu, and dropdown elements as well as the
other elements required by them for this example.
The required render methods have also being created, and the
end use of those methods applied to index.php
Added themes to show how this looks when you override the renderers