Fix build: syntax error in CMakeLists.txt
Give ConfigReaderState* to dotconf as a context ptr instead of ConfigReader*, removes the need for _state()
Make state a RAII local variable in read(). There's no need to store it as a member anymore.

Also remove the destructor which is now unnecessary. Also remove some constructor declarations that weren't implemented. Also move dotconf_cleanup up, so throwing a database exception does not cause a leak.
Mark more config stuff as const, remove unimplemented error() declaration
Don't save filename in Config, give it to ::read()
Use shared_ptr<ConfigReader> instead of ConfigReader* everywhere, and just reuse the one instead of creating a new one on readConfig().
Remove obvious DatabaseConfig constructors that were added to silence silly old warnings.
Initialise a Database with a DatabaseConfig.
Don't give the .c_str() of a temporary string to mongo.
Make open() void, throwing an exception on failure. Remove lastError() since it is now unused.
Don't silently ignore errors anymore.
When an exception occurs in the PluginComm handler, ignore it
Implement permissions support: plugins can set, unset and request permission state. This can be integrated with command support to check permissions too.