Major change to how initialisation is handled, precipitated by a need to handle the index creation and put mappings.  The following things happened:

* Change to mapping configuration - mappings are now specified by the DAOs that require them.  Mapping configuration now just lists those DAOs and the plugin loader is used to retrieve them and their mapping info
* Addition of portentious DAO that sits beneath the esprit DAO.  It offers automatic config of the ES endpoint as well as a default mapping configuration
* Ability for plugin lib to load modules as well as classes
* separate flask application setup (e.g. config stuff) from application initialisation (e.g. index create/mappings) - entry points into the code now must call initialise() if they want to be sure the environment is set up correctly
Merge branch 'allapc'