Updated plugin system to work more neatly.

  This will be explained in the PLUGINS file, shortly, but in brief
 we have a class-factory which allows plugin classes to register
 themselves as formatters.
  Documetnation update.