Added component registering

All components now have to be registered in registerKeywords so that
documentation on what componets are available in a given action are
available in the manual.  Currently the code gives a warning if a user
tries to use a component that is not properly described in the manual.
In the future (v2.2) this warning will be replaced by an error.  That
is to say you wont be allowed to use unregistered components.  This is
all described more in #76
Added documentation on component registration.

Also took the opportunity to fix a couple of errors in other parts of the
developer documentation