Add read-only user option

authlib.py:    Add readonly property to BaseAuth
               If user is trusted, use readonly value from impersonated user
               Add parameter readonly=False to SqliteAuth.adduser

local_auth.db: Add column readonly to the schema of table user
               Make default user guest a read-only user

auth.py:       Add readonly property to the session object

nipap-passwd:  Add option -r (--readonly) to set a read-only user
               Add read-only column to output of user list

backend.py:    Perform authorization for read-only users (add, edit, delete)

pynipap.py:    Translate auth errors from XML-RPC to exceptions

Part of #438.
Add test suite for read-only functions

This makes sure that a read-only user can execute read-only functions
and is not allowed to execute read-write functions.

It relies on pynipap, so certain backend functions, like those related
to ASNs, are not tested as pynipap doesn't yet offer mappings for those
functions.

Part of #438.
Merge branch '438-read-only-backend'