Add plugin based module provider and server side auth

Changes:
- Add plugin based module provider.
- Add partial support for server side rsync MD5 challenge response
  authentication. Configuration still lacks support for configuring
  this though.
- Modifications to Configuration: read only removed, replaced by
  is_readable and is_writable.
- Documentation updated to reflect these changes.

Notes:
- If a ModuleProvider (such as Configuration), fails initialising at
  the start of a new session, the session will now fail instead of
  resuing the old instance.
- There is currently no support for configuring server side
  authentication in Configuration.